热情软件屋

 

在程序中怎样改变客户区的颜色


编号:QA004160
建立日期: 2001年4月26日 最后修改日期:2001年4月26日
所属类别:

张某:
    操作系统: windows98
    编程工具: VC++6.0
    问题: 1.WinExec()的第一个参数用不用带路径?是不是不用(我看到有个程序中要启动资源管理器,它调用此函数的形式为(WinExec(_T("explorer",SW_SHOW_NORMAL),它就没带路径!还有,“_T”有什么用?)。
    2.在程序中怎样改变客户区的颜色?
    3.怎样使用自己画的鼠标?
    4.CButton& MyButton(){return *(CButton*)GetDlgItem(IDC_MYBUTTON);}是什么意思?它的返回值赋给谁了(给MyButton()了!?)
    5.关机的函数是什么?
    水平: 刚入门

回答:

    1、如果WinExec的第一个参数不带路径,则系统会在Windows、System和Path指定的目录中查找。如果你要运行的程序在这些目录中,就不用指定路径。
    _T的问题可以参考QA003854 "类型转换 _T()是什么意思"
    2、Windows向窗口发送一个WM_ERASEBKGND消息通知该窗口擦除背景,可以使用ClassWizard重载该消息的缺省处理程序来擦除背景(实际是画),并返回TRUE以防止Windows擦除窗口。
    //Paint area that needs to be erased.
    
BOOL CSampleView : : OnEraseBkgnd (CDC* pDC)
    
{
    
// Create a pruple brush.
    
CBrush Brush (RGB (128 , 0 , 128) );
    
    
// Select the brush into the device context .
    
CBrush* pOldBrush = pDC->SelectObject (&brush);
    
    
// Get the area that needs to be erased .
    
CRect reClip ;
    
pDC->GetClipBox(&rcClip);
    
//Paint the area.
    
pDC-> PatBlt (rcClip.left , rcClip.top ,
    
rcClip.Width() , rcClip.Height(), PATCOPY );
    
    
//Unselect brush out of device context .
    
pDC->SelectObject (pOldBrush );
    
    
// Return nonzero to half fruther processing .
    
return TRUE;
    
}
    
    

    3、使用鼠标的问题参考QA002149 "如何更改程序的默认光标"
    4、其实这个函数的返回值放在堆栈上,至于给谁了,要看谁调用它。
    5、关机的问题参考QA001112 "如何重新启动本机、关机"
    
    你的这种提问方式不符合规定,希望你看看“提问须知”,否则以后提的问题将不处理。

此问题由李海回答。

附加关键字:编程, 源程序, programming, source code, C/C++, MFC, C++ Builder, Borland C++, Turbo C, C, BCB, Windows API, win32, api, windows api, gdi32, kernel

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio