【程序编程相关:关于构造失败如何处理】
在软件的界面设计上,简洁.高效永远是追求的目标.可扩展/收缩的对话框能有效的利用屏幕空间资源,展开后能提供较多的设置选项,收拢后又能节省屏幕空间资源,免除一些次要选项对操作的干扰.下面介绍实现原理与细节.图示分别为收拢后与展开后的界面,例子 【推荐阅读:关于成员和基类的构造函数】
设计对话框时是完整的(也就是展开后)大小,当对话框初始化时我们只显示一部分,也就是收拢后的效果.只显示一部分对话框界面的功能可以通过函数 setwindowpos 来实现.下面是它的原型: 【扩展信息:一个“tif was not decla】
原理
bool setwindowpos(
hwnd hwnd, // handle of windowhwnd hwndinsertafter, // placement-order handleint x, // horizontal positionint y, // vertical positionint cx, // widthint cy, // heightuint uflags // window-positioning flags);cx 就是窗口重新设置的宽度.
cy 就是窗口重新设置的高度.我们这样来调用它:
invoke setwindowpos, hwnd, null, 0, 0, ebx, eax, swp_nozorder or swp_nomove
其中 ebx 与 eax 就是新的窗口宽度与高度.
初始化对话框大小后,在程序中我们还要能响应按钮消息展开/收拢对话框.所以我们把设置窗口大小的代码编写成一个函数,在需要的时候就可以调用.具体实现代码如下:
例子
.386
.model flat,stdcalloption casemap:none;****************************************************************************************
include c:\masm32\include\windows.inc
include c:\masm32\include\user32.incinclude c:\masm32\include\kernel32.incincludelib c:\masm32\lib\user32.lib
includelib c:\masm32\lib\kernel32.lib;****************************************************************************************
... 下一页