手动创建窗口程序
来源:互联网 发布:js自定义组件 编辑:程序博客网 时间:2024/06/10 20:19
以前都是用mfc直接生成窗口,最近在学习Directx是资料上手动创建一个窗口,自己便试着去手动创建一个窗口,程序写好了开始编译,没有报错能够,但是窗口不能显示,通过不断地观察和测试,最后发现原来是消息过程函数没有DefWindowProc这个函数,添加这后运行成功。代码如下,共大家参考:
#include "windows.h"
#pragma comment(lib, "User32.lib")
#define CLASSNAME "UserWindow"
#define WINDOWNAME "TestWindow"
LRESULT CALLBACK WindowProc(HWND hwnd,UINT uMsg,
WPARAM wParam,LPARAM lParam);
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
WNDCLASSEX WndClass;
WndClass.cbSize = sizeof(WNDCLASSEX);
WndClass.cbClsExtra = NULL;
WndClass.cbWndExtra = NULL;
WndClass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
WndClass.hInstance = hInstance;
WndClass.lpfnWndProc = WindowProc;
WndClass.lpszClassName = "UserWindow";
WndClass.lpszMenuName = NULL;
WndClass.style = CS_HREDRAW | CS_VREDRAW;
WndClass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
if (!RegisterClassEx(&WndClass))
{
return NULL;
}
HWND hWnd;
hWnd = CreateWindowEx(NULL, WndClass.lpszClassName, "TestWindow", WS_VISIBLE | WS_SYSMENU, 100, 100, 400, 300, NULL,
NULL, hInstance, NULL);
if (NULL == hWnd)
{
return NULL;
}
ShowWindow(hWnd, SW_SHOWNORMAL);
UpdateWindow(hWnd);
MSG msg;
while (GetMessage(&msg, NULL, NULL, NULL))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK WindowProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch (uMsg)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
break;
}
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
- 手动创建窗口程序
- SDK手动创建窗口
- Windows创建窗口程序
- 创建程序窗口
- 基本的MFC程序(手动创建)
- 手动创建第一个OC程序
- 创建窗口的例子程序
- win32程序窗口的创建
- win32程序窗口的创建
- vs创建无窗口程序
- 创建一个win32窗口程序
- 基于Win32Api创建窗口程序
- 创建一个窗口程序JFrame
- ogre手动创建窗口需要实现的东西
- 由空白win32工程起,手动设计一个窗口程序
- MFC 多文档程序 手动创建新文档的方法
- 对于高版本ADT,手动创建Helloworld程序
- Java手动创建一个内存泄漏的程序
- 日签到破百万
- zt虚假同感偏差(false consensus bias)
- C#序列化与反序列化
- 学历是铜牌,能力是银牌,人脉是金牌,思维是王牌。好文章,要留给自己。
- Twitter再遇故障 信息回复消失
- 手动创建窗口程序
- 小诗一首——记得
- 图片上下间歇滚动
- 动态链接库(DLL)的使用
- 王爽汇编实验7 解答
- 删除Symbian模拟器(功能表->安装)里面测试程序的方法
- Ubuntu下Samba服务器的最简配置
- 布告板技术创建树木
- 一个最简单的Lucene例子