C语言代码片段
//窗口居中
POINT Center(int width,int height)
{
POINT pt;
int screen_width;
int screen_height;
screen_width = GetSystemMetrics(SM_CXSCREEN);
screen_height = GetSystemMetrics(SM_CYSCREEN);
pt.x = (screen_width-width)/2;
pt.y = (screen_height-height)/2;
return pt;
}
//主窗口样式
WS_OVERLAPPEDWINDOW |
默认样式,包含以下所有样式 |
WS_OVERLAPPED |
|
WS_CAPTION |
是否包含标题栏 |
WS_SYSMENU |
是否包含系统菜单 |
WS_THICKFRAME |
窗口是否可以改变大小 |
WS_MINIMIZEBOX |
是否有最小化按钮 |
WS_MAXIMIZEBOX |
是否有最大化按钮 |
//vs资源编辑器中编辑对话框时右下方显示的窗口尺寸,与窗口实际大小之间的转换关系
//字体为8号
//长 1 DLU = 1.50
//宽 1 DLU = 1.62
DLU指的是 对话框的逻辑单位,相对应的就是实际显示的单位
//如何精确的设置窗口的客户区大小
//使用AdjustWindowRect
HWND hWnd; POINT win_pos; RECT rt;
hInst = hInstance; // 将实例句柄存储在全局变量中 SetRect(&rt,0,0,WIN_WIDTH,WIN_HEIGHT); AdjustWindowRect(&rt, WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX, TRUE); win_pos = Center(rt.right-rt.left,rt.bottom-rt.top);
hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX, win_pos.x, win_pos.y, rt.right-rt.left, rt.bottom-rt.top, NULL, NULL, hInstance, NULL); |
//如何使用资源编辑器直接编辑主窗口
//可以使用资源编辑器创建一个子窗口来代替原先的主窗口
//主窗口窗口过程函数这样写
case WM_CREATE: hdlgMain = CreateDialog(hInst,MAKEINTRESOURCE(IDD_DIALOGMAIN),hWnd,MainFace); break; |
//资源编辑器的配置