win32的创建窗口代码
2017-07-22 20:08
246 查看
#include"stdafx.h"
HINSTANCE g_hInstance = 0;
//窗口处理函数
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_DESTROY:
PostQuitMessage(0); //能够使GetMessage返回0?
break;
}
return DefWindowProc(hWnd, message, wParam, lParam); //给各种消息做默认处理
}
//注册窗口类
void Register(LPSTR lpClassName, WNDPROC wndproc){
WNDCLASS wce = { 0 };
//wce.cbSize = sizeof(wce);
wce.cbClsExtra = 0;
wce.cbWndExtra = 0;
wce.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1);
wce.hCursor = NULL;
wce.hIcon = NULL;
//wce.hIconSm = NULL;
wce.hInstance = g_hInstance;
wce.lpfnWndProc = wndproc;
wce.lpszClassName = _TEXT("lpClassName");
wce.lpszMenuName = NULL;
wce.style = CS_HREDRAW | CS_VREDRAW;
RegisterClass(&wce);//将以上所有赋值全部写入操作系统
}
//创建主窗口
HWND CreateMain(LPSTR lpClassName, LPSTR lpWndName){
HWND hWnd = CreateWindowEx(0,_TEXT("lpClassName"),_TEXT("lpWndName"),WS_OVERLAPPEDWINDOW,100,100,700,500,NULL,NULL,g_hInstance,NULL);
return hWnd;
}
//显示窗口
void Display(HWND hWnd){
ShowWindow(hWnd, SW_SHOW);
UpdateWindow(hWnd);
}
//消息循环
void Message(){
MSG nMsg = { 0 };
while (GetMessage(&nMsg,NULL,0,0))
{
TranslateMessage(&nMsg);
DispatchMessage(&nMsg); //交给窗口处理函数
}
}
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){
//HWND hWnd;
g_hInstance = hInstance; //当前程序实例句柄
Register("Main",WndProc);
HWND hWnd=CreateMain("Main", "window");
Display(hWnd);
Message();
return 0;
}
以上代码自己写的有错望纠正!
相关文章推荐
- OpenGL1-创建窗口(建立Win32的OpenGL开发环境 )(代码上传)
- OpenGL1-创建窗口(建立Win32的OpenGL开发环境 )(代码上传)
- Win32控制台工程中创建窗口
- MFC代码创建窗口
- 【win32】day03-窗口注册和创建
- Windows下游戏制作(1)---win32窗口创建(2)
- win32创建窗口流程
- MOOC清华《VC++面向对象与可视化程序设计》第1章:空白窗口的创建(Win32项目)
- 使用Win32 API创建不规则形状&带透明色的窗口
- 使用WIN32 API CreateProcess()以无窗口方式创建DOS程序
- 用Win32 API创建不规则窗口
- win32 api Windows窗口的创建
- win32 api 创建窗口的一个简单例子
- d3d中创建一个窗口,即设备的代码
- QT编程入门--用代码创建简单的窗口
- Win32编程 创建窗口第二步 创建窗口类
- C++API创建Win32窗口
- MFC程序对win32的封装总结(窗口类的注册,窗口的创建,窗口的窗口过程指定)
- Win32多窗口程序的创建
- 从win32控制台创建窗口过程