如何在主窗口右上角的最小框左边加一按钮
编号: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的例子。
此问题由李海回答。
| |
|
|
| |
|
|