热情软件屋

 

如何在主窗口右上角的最小框左边加一按钮


编号:QA000490
建立日期: 1999年2月7日 最后修改日期:2000年2月1日
所属类别:

李华:
    Vc++ 5.0
    Win98
    我想在主窗口右上角的最小框左边加一按钮,我的程序如下:
    RECT r;
    b.Create("", BS_ICON,CRect(0,0,0,0),AfxGetMainWnd(),100 );
    b.SetIcon(AfxGetApp()->LoadIcon(id_1));
    AfxGetMainWnd()->GetWindowRect(&r);
    b.SetWindowPos(0,r.right-r.left-80,-50,15,15,SWP_SHOWWINDOW|SWP_NOZORDER);
    这时的(0,0)为菜单条下区域的左上角,但上面的坐标为负时显示不出按钮。

回答:

    我们普通的程序绘制对是在客户区进行的,即菜单条下的区域,而最小按钮在窗口标题部分,这属于非客户区(nonclient area)。在微软的Knowledge Base的文章:“Q99046“ ow to Draw a Custom Window Caption”介绍了如何在非客户区绘制图形。你可以在http://www.codeguru.com/dialog/custom_dialog_caption.shtml找到使用VC++实现的例子。
    你添加的是按钮,所以你可能还要处理WM_NCLBUTTONDOWN等消息。QA001338 "如何在窗体的标题栏中使用自定义的按扭"提供了一个Delphi的例子。

此问题由李海回答。

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

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