• 初探C++ win32 api——Hello world!


    win32 api 试水——Helloworld

    (可能是因为用的MingGW,会出现一些奇怪的问题比如MSDN的示例代码过不了编译之类的。。。。。)
    编译器版本:

    fig1

    #ifndef UNICODE
    #define UNICODE
    #endif
    #ifndef _UNICODE
    #define _UNICODE
    #endif
    
    #include <windows.h>
    
    HINSTANCE hInst;
    HWND hwndMain;
    WNDCLASS wcMain;
    
    LRESULT CALLBACK mainProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR pCmdLine, INT nCmdShow) {
    	//隐藏命令行窗口
    	FreeConsole();
    
    	//句柄存成全局是因为有可能过程函数要用到
    	hInst = hInstance;
    
    	//设计窗口类
    	wcMain.hInstance = hInst;
    	wcMain.lpszClassName = L"MainWindow";
    	wcMain.lpfnWndProc = mainProc;
    
    	//注册窗口类
    	RegisterClass(&wcMain);
    
    	//创建窗口
    	hwndMain = CreateWindow(L"MainWindow", L"Main", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 700, 450, NULL, NULL, hInst, NULL);
    
    	//显示,更新窗口
    	ShowWindow(hwndMain, SW_SHOW);
    	UpdateWindow(hwndMain);
    
    	//消息循环
    	MSG msg;
    	while (GetMessage(&msg, NULL, 0, 0)) {
    		TranslateMessage(&msg);
    		DispatchMessage(&msg);
    	}
    
    	return 0;
    }
    
    LRESULT CALLBACK mainProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
    	switch (msg) {
    		case WM_KEYDOWN : { //任意键被按下时
    			if (wParam == VK_ESCAPE) SendMessage(hwnd, WM_CLOSE, NULL, NULL); //如果是ESC就关闭窗口
    			else MessageBox(NULL, L"Hello world!", L"Message", MB_OK); //否则弹出一个对话框
    			break;
    		}
    		case WM_DESTROY : {
    			PostQuitMessage(0); //发送WM_QUIT消息
    			break;
    		}
    		default : {
    			return DefWindowProc(hwnd, msg, wParam, lParam); //其它消息用默认方式处理
    		}
    	}
    	return 0;
    }
    
  • 相关阅读:
    Android自定义DataTimePicker(日期选择器)
    面试阶段如何与 HR 沟通薪酬
    ppshu
    什么是SOA?
    手机页游再升级 腾讯出恶搞APEC元首换装小游戏
    pp
    oracle sql
    JSP中脚本、声明和表达式的本质区别
    使用WSDL发布WebService(第二部分)简单对象访问协议——学习SOAP语法和使用SOAP发布WSDL
    Javascript 文件的同步加载与异步加载
  • 原文地址:https://www.cnblogs.com/Rhein-E/p/14152366.html
Copyright © 2020-2023  润新知