追加100分,用过MDI的请进 实现打开MDI子窗口默认为最大化就行了。问题代码见http://topic.csdn.net/u/20120815/04/8a4f2571-d123-49d5-9d0e-71625f7826c7.html 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在你的子窗口框架类里面,设置它的Style为WS_MAXIMIZE 就是我设了WS_MAXIMIZE后才出现问题,子窗口右上角的三个最小化按钮,变为六个了。 LRESULT CALLBACK RectWndProc2(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { static HWND hwndClient, hwndFrame; switch (message) { case WM_CREATE: hwndClient = GetParent(hwnd); hwndFrame = GetParent(hwndClient); return 0; case WM_MDIACTIVATE: if (lParam == (LPARAM) hwnd) SendMessage(hwndClient, WM_MDISETMENU, (WPARAM) NULL, (LPARAM) hMenuRectWindow); //原来这里是hMenuRect,现在改为NULL else SendMessage(hwndClient, WM_MDISETMENU, (WPARAM) hMenuInit, (LPARAM) hMenuInitWindow); DrawMenuBar(hwndFrame); return 0; case WM_DESTROY: return 0; } return DefMDIChildProc(hwnd, message, wParam, lParam);}楼主结贴吧,搞了我很久了 这样不行的,我需要给WM_MDISETMENU传框架窗口菜单与窗口菜单两个参数,不然功能有缺失。我这边整个菜单都不见了。mdicreate.style = 0;时所有功能就正常了。 可不可以在子窗口创建完后,SendMessage(WM_MDIMAXIMIZE,0,0); 这样出现中间态,用户体验不好。就算时间很短,对于开发者往往也不想接受这样的妥协,还是想找为什么会出现那样的情况吧。现在用mdi的人好像不是很多了。 怎么不直接建MDI项目呢?这样搞要是就为了练习也还可以。 问题的表象就如下帖一样,有图片。http://social.msdn.microsoft.com/Forums/zh-CN/2212/thread/0a69e803-7a38-445a-84f0-7c2071684706 http://zhidao.baidu.com/question/233023959.html 内存碎片的疑问 VC6.0中怎样改变对话框中控件的字体大小 关于ReadProcessMemory读UNICODE时候出错 关于程序设计中大家 经常遇到 的问题! RS232 串口编程 如何得到RB8的值啊 如何实现1秒的延时定时器 求MSDN 2001 oct3CD的有效高速下载地址。.Net 2003的MSDN不好用 如何设置对话框上的复选框默认情况下是被选中的? 在往图形中填充颜色的时候!为什么会出现必需的资源无法得到的错误提示! 多线程的recvfrom问题 电影版权保护的技术叫drm, 好像有第三方软件实现,有谁了解? 如何理解单词和以下音素的关系?
LRESULT CALLBACK RectWndProc2(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {
static HWND hwndClient, hwndFrame;
switch (message) {
case WM_CREATE:
hwndClient = GetParent(hwnd);
hwndFrame = GetParent(hwndClient);
return 0;
case WM_MDIACTIVATE:
if (lParam == (LPARAM) hwnd)
SendMessage(hwndClient, WM_MDISETMENU, (WPARAM) NULL, (LPARAM) hMenuRectWindow); //原来这里是hMenuRect,现在改为NULL
else
SendMessage(hwndClient, WM_MDISETMENU, (WPARAM) hMenuInit, (LPARAM) hMenuInitWindow);
DrawMenuBar(hwndFrame);
return 0; case WM_DESTROY:
return 0;
}
return DefMDIChildProc(hwnd, message, wParam, lParam);
}
楼主结贴吧,搞了我很久了
这样搞要是就为了练习也还可以。
http://social.msdn.microsoft.com/Forums/zh-CN/2212/thread/0a69e803-7a38-445a-84f0-7c2071684706
http://zhidao.baidu.com/question/233023959.html