当前位置:首页
开发技术指南» 文章正文
    引言:

    摘要: 希望能有详细的介绍 ......
    摘要: 我想<html:text property="birthdate"></html:text>旁边放一按钮点它就弹出日期让用户选择,而这个选择的日期必需赋给这个text. 请高手指点。我是刚接触struts ......


如何改变标题栏的文字及标题栏上的最大化按钮的形状和颜色

现在要开发一个程序,要求改变标题栏上的背景为黑色,并且背景上要贴上公司要求的图片。  
  标题栏上的按钮的形状也要改变,颜色也要改变。  
  同时边框的四周也要改变颜色。  
   
  这个程序我已经做了一段时间,是采用对话框做为程序的主框架的。因为在该对话框上要加入菜单,  
  要求菜单在标题栏下面。  
  也就是说,采用某种方法改变对话框的标题栏后,菜单仍然是在标题栏的下面。

NO.1   作者: pomelowu

响应WM_NCPAINT,用   GetDCEx   获得DC句柄,自行绘制。

NO.2   作者: goodboyws

在处理WM_NCPAINT的基础上,加上  
  void   CXXXXXDlg::OnInitMenu(CMenu*   pMenu)  
  {  
  CDialog::OnInitMenu(pMenu);  
  SendMessage(WM_NCPAINT);  
  }  
  LRESULT   CXXXXXDlg::WindowProc(UINT   message,   WPARAM   wParam,   LPARAM   lParam)  
  {  
   
  if   (message   ==   WM_NCHITTEST)  
  {  
  LRESULT   lRet   =   CDialog::WindowProc(message,   wParam,   lParam);  
  if   (lRet   ==   HTZOOM   ||   lRet   ==   HTMINBUTTON   ||   lRet   ==   HTCLOSE)  
  return   HTCAPTION;  
  else  
  return   lRet;  
  }  
  else   if   (message   ==   WM_SETCURSOR   ||   message   ==   WM_NCLBUTTONDOWN   ||   message   ==   WM_NCLBUTTONDBLCLK)  
  {  
  ModifyStyle(WS_SYSMENU,   0);  
  LRESULT   lRet   =   CODDialog::WindowProc(message,   wParam,   lParam);  
  ModifyStyle(0,   WS_SYSMENU);  
  return   lRet;  
  }  
  return   CDialog::WindowProc(message,   wParam,   lParam);  
  }  
  以避免对窗口标题的重画

NO.3   作者: pomelowu

在WM_NCPAINT绘图前,先调用DefWindoProc处理消息,然后绘图。  
  绘制的时候,用GetTitleBarInfo获得标题栏的高度,然后就能控制不在标题栏以外的地方绘图了。比如:  
  case   WM_NCPAINT:  
  {  
  DefWindowProc(hDlg,   message,   wParam,   lParam);  
  HDC   hdc;  
  hdc   =   GetWindowDC(hDlg);  
   
  //   Paint   into   this   DC  
  RECT   rcDialog,rc;  
  GetWindowRect(hDlg,   &rcDialog);  
  HBRUSH   hbr   =   CreateSolidBrush(0);  
  rc.left   =   0;   rc.top   =   0;  
  rc.right   =   rcDialog.right   -   rcDialog.left;  
   
  TITLEBARINFO   tbi;  
  tbi.cbSize   =   sizeof(tbi);  
  GetTitleBarInfo(hDlg,   &tbi);  
  rc.bottom   =   tbi.rcTitleBar.bottom   -   tbi.rcTitleBar.top;  
   
  HBRUSH   hOldbr   =   SelectObject(hdc,   hbr);  
  FillRect(hdc,   &rc,   hbr);  
  SelectObject(hdc,   hOldbr);  
  DeleteObject(hbr);  
   
  ReleaseDC(hDlg,   hdc);  
  return   TRUE;  
  }  
   
 


    摘要: 我想用create table 建立一个表aa 其中有一个字段bb是单精度类型,我想设置这个字段的小数位是2位 create table aa (bb single) 但是我不知道使用什么命令设置小数位为2位 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE