日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

11WinDlg 对话框一

發(fā)布時(shí)間:2025/3/18 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 11WinDlg 对话框一 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • #include <windows.h>
  • #include <iostream>
  • #include "resource.h"
  • CHAR szText[256] = { 0 };
  • #define PrintLog(x) WriteConsole(g_hStdout, x, strlen(x), NULL, NULL)
  • HINSTANCE g_hInst = NULL; //窗口句柄
  • HANDLE g_hStdout = NULL; //控制臺(tái)句柄
  • //Dlg Proc
  • BOOL CALLBACK SettingDialogProc(
  • HWND hwndDlg,
  • UINT nMsg,
  • WPARAM wParam,
  • LPARAM lParam
  • ){
  • PrintLog("SettingDialogProc\n");
  • //return DefDlgProc(hwndDlg, nMsg, wParam, lParam);
  • switch (nMsg)
  • {
  • case WM_SYSCOMMAND:
  • {
  • switch(wParam)
  • case SC_CLOSE:
  • EndDialog(hwndDlg, 2);
  • }
  • break;
  • }
  • return 0;
  • }
  • //Setting
  • void Setting(HWND hWnd)
  • {
  • //創(chuàng)建對(duì)話框,這里的返回值和EndDialog的第二個(gè)參數(shù)相同
  • int nRet = DialogBox(g_hInst, MAKEINTRESOURCE(IDD_SETTING), hWnd, SettingDialogProc);
  • sprintf_s(szText, 256, "Setting:%d\n", nRet);
  • PrintLog(szText);
  • }
  • //OnCommand
  • void OnCommand(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
  • {
  • int hCommandID = LOWORD(wParam);
  • sprintf_s(szText, 256, "%d\n", hCommandID);
  • PrintLog(szText);
  • switch (hCommandID)
  • {
  • case ID_SETTING:
  • Setting(hWnd);
  • break;
  • case ID_EXIT:
  • PostQuitMessage(0);
  • break;
  • }
  • }
  • LRESULT CALLBACK WndProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
  • {
  • switch (nMsg)
  • {
  • case WM_COMMAND:
  • OnCommand(hWnd, nMsg, wParam, lParam);
  • break;
  • case WM_DESTROY:
  • PostQuitMessage(0);
  • break;
  • }
  • return DefWindowProc(hWnd, nMsg, wParam, lParam);
  • }
  • BOOL RegisterWnd(LPSTR pszClassName)
  • {
  • WNDCLASSEX wce = { 0 };
  • wce.cbSize = sizeof(wce);
  • wce.cbClsExtra = 0;
  • wce.cbWndExtra = 0;
  • wce.hbrBackground = HBRUSH(COLOR_BTNFACE + 1);
  • wce.hCursor = NULL;
  • wce.hIcon = NULL;
  • wce.hIconSm = NULL;
  • wce.hInstance = g_hInst;
  • wce.lpfnWndProc = WndProc;
  • wce.lpszClassName = pszClassName;
  • wce.lpszMenuName = NULL;
  • wce.style = CS_HREDRAW | CS_VREDRAW;
  • ATOM atom = RegisterClassEx(&wce);
  • if (atom == NULL)
  • {
  • return FALSE;
  • }
  • else
  • {
  • return TRUE;
  • }
  • }
  • HWND CreateWnd(LPSTR pszClassName)
  • {
  • HMENU hMenu = LoadMenu(g_hInst, MAKEINTRESOURCE(IDR_MENU1));
  • HWND hWnd = CreateWindowEx(0, pszClassName, "滅天", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
  • CW_USEDEFAULT, NULL, hMenu, g_hInst, 0);
  • return hWnd;
  • }
  • void ShowWnd(HWND hWnd)
  • {
  • ShowWindow(hWnd, SW_SHOW);
  • UpdateWindow(hWnd);
  • }
  • void Msg()
  • {
  • MSG msg = { 0 };
  • while (GetMessage(&msg, NULL, 0, 0))
  • {
  • TranslateMessage(&msg);
  • DispatchMessage(&msg);
  • }
  • }
  • void ConsoleWnd()
  • {
  • AllocConsole();
  • g_hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
  • CHAR szText[] = "Debug start:\n";
  • WriteConsole(g_hStdout, szText, strlen(szText), NULL, NULL);
  • }
  • int WINAPI WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nShowCmd)
  • {
  • g_hInst = hInstance;
  • ConsoleWnd();
  • RegisterWnd("oooo");
  • HWND hWnd = CreateWnd("oooo");
  • ShowWnd(hWnd);
  • Msg();
  • return 0;
  • }



  • 來(lái)自為知筆記(Wiz)

    轉(zhuǎn)載于:https://www.cnblogs.com/nfking/p/5573171.html

    總結(jié)

    以上是生活随笔為你收集整理的11WinDlg 对话框一的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。