更新时间:2016-01-18 21:28:22浏览次数:1+次
我们指定了新的对话框类名,还需要注册新的窗口类,但是又不能在PreCreateWindow函数里注册,所以只能对话框创建之前的其他地方进行注册,InitInstance函数是个非常好的选择:(大多数的MFC程序的对话框都是使用默认的类名:#32770)
WNDCLASS wndClass;
::GetClassInfo(AfxGetInstanceHandle(), "#32770", &wndClass);//拷贝默认的窗口类的信息
wndClass.lpszClassName = " My New Dialog Class ";//修改类名
RegisterClass(&wndClass);
这样,这个对话框就有了新的类名。BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
// Create a window without min/max buttons or sizable border
cs.style = WS_OVERLAPPED | WS_SYSMENU | WS_BORDER;
// Size the window to 1/3 screen size and center it
cs.cy = ::GetSystemMetrics(SM_CYSCREEN) / 3;
cs.cx = ::GetSystemMetrics(SM_CXSCREEN) / 3;
cs.y = ((cs.cy * 3) - cs.cy) / 2;
cs.x = ((cs.cx * 3) - cs.cx) / 2;
// Call the base-class version
return CFrameWnd::PreCreateWindow(cs);
}
此代码创建一个没有“最小化”按钮和“最大化”按钮,也没有大小可调边框的主框架窗口。此窗口最初在屏幕上居中。
相关资讯