`

WINDOWS API 创建窗口实例

    博客分类:
  • MFC
阅读更多

#include<windows.h> // 包含 windows.h 头文件

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM ); // 窗口函数声明

/* 入口函数 WinMain()*/

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine,

int nCmdShow){

WNDCLASS wndclass; // 定义窗口类结构变量

HWND hwnd; // 定义窗口句柄

MSG msg; // 定义消息结构变量

/* 定义窗口类的各属性 */

wndclass.style = CS_HREDRAW|CS_VREDRAW; // 改变窗口大小则重画

wndclass.lpfnWndProc = WndProc; // 窗口函数为 WndProc

wndclass.cbClsExtra = 0; // 窗口类无扩展

wndclass.cbWndExtra = 0; // 窗口实例无扩展

wndclass.hInstance = hInstance; // 注册窗口类实例句柄

wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION); // 用箭头光标

wndclass.hCursor = LoadCursor(NULL,IDC_ARROW);

wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); // 背景为白色

wndclass.lpszMenuName = NULL; // 窗口默认无菜单

wndclass.lpszClassName = "window 窗口创建 "; // 窗口类名为 window 窗口创建

/* 注册窗口类 */

if(! RegisterClass(&wndclass)) return FALSE;

/* 创建窗口 */

hwnd = CreateWindow("window 窗口创建 ", // 窗口类名 window 窗口创建

"window 窗口创建 ", // 窗口名 window 窗口创建

WS_OVERLAPPEDWINDOW, // 重叠式窗口

CW_USEDEFAULT, CW_USEDEFAULT, // 左上角屏幕坐标默认值

CW_USEDEFAULT, CW_USEDEFAULT, // 窗口宽度和高度默认值

NULL, // 此窗口无父窗口

NULL, // 此窗口无主菜单

hInstance, // 创建此窗口的实例句柄

NULL); // 此窗口无创建参数

/* 显示并更新窗口 */

ShowWindow(hwnd,nCmdShow); // 显示窗口

UpdateWindow (hwnd); // 更新窗口的客户区

/* 消息循环 */

while(GetMessage (&msg,NULL,0,0)) {

TranslateMessage (&msg); // 键盘消息转换

DispatchMessage (&msg); // 派送消息给窗口函数

}

return msg.wParam; // 返回退出值

}

/* 窗口函数 */

LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam, LPARAM lParam){

// 根据消息值转相应的消息处理

switch (message){

case WM_PAINT: // 重画窗口客户区消息处理

HDC hdc; // 定义设备描述表句柄

PAINTSTRUCT ps; // 定义绘图信息结构变量

hdc = BeginPaint (hwnd,&ps); // 获取要重画的窗口的设备描述表句柄

TextOut(hdc,10,20," 哈哈, Windows 编程创建的窗口 !", 28); // 输出文本

EndPaint (hwnd,&ps); // 结束要重画的窗口

return 0;

case WM_DESTROY: // 撤销窗口消息处理

PostQuitMessage (0); // 产生退出程序消息 WM_QUIT

return 0;

}

return DefWindowProc (hwnd, message, wParam, lParam);

// 其他转默认窗口函数

}

分享到:
评论

相关推荐

    实例010——使用Windows API创建程序窗口.zip

    实例010——使用Windows API创建程序窗口.zip

    使用Windows C++ API创建普通窗口实例

    一个使用Windows C++ API创建普通窗口的实例

    精通WindowsAPI 函数 接口 编程实例

    9.3.2 创建窗口 251 9.3.3 窗口消息处理函数 253 9.3.4 窗口属性、位置和大小 256 9.3.5 窗口显示方式 257 9.3.6 线程消息队列和消息循环 258 9.4 图形用户界面:控件 258 9.4.1 Tree View控件 258 ...

    精通Windows.API-函数、接口、编程实例.pdf

    9.3.2 创建窗口 251 9.3.3 窗口消息处理函数 253 9.3.4 窗口属性、位置和大小 256 9.3.5 窗口显示方式 257 9.3.6 线程消息队列和消息循环 258 9.4 图形用户界面:控件 258 9.4.1 Tree View控件 258 ...

    Python使用Windows API创建窗口示例【基于win32gui模块】

    主要介绍了Python使用Windows API创建窗口操作,结合实例形式分析了Python基于win32gui模块调用Windows API创建窗口具体操作步骤与相关实现技巧,需要的朋友可以参考下

    windows API编程的源代码

    一个Windows API程序的初始化主要分为为四个部分。1、窗口类的定义2、窗口类的注册3、创建窗口实例4、显示窗口

    Windows API函数大全

    CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统 DrawText 将文本描绘到指定的矩形中 DrawTextEx 与DrawText相似,只是加入了更多的功能 ...

    VC++开发400实例

    实例010——使用Windows API创建程序窗口 实例011——使用AppWizard创建基于文档视图结构MFC应用程序框架 实例012——使用AppWizard建立对话框应用程序框架 实例013——实现查找、替换字符串 实例014——根据...

    windows_API编程

    窗口类结构体中包括的数据:窗口实例句柄,窗口显示风格style,窗口过程函数(处理窗 口的所有响应的消息),窗口注册时额外的内存开销,窗口创建时额外的内存开销,窗口背 景,窗口菜单,窗口类名,图标句柄,鼠标...

Global site tag (gtag.js) - Google Analytics