国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C/C++ - VC中控制臺程序創(chuàng)建窗口的實例方法

VC中控制臺程序創(chuàng)建窗口的實例方法

2022-03-09 14:19jobsxiao C/C++

在本篇文章里小編給大家分享的是關于VC中控制臺程序創(chuàng)建窗口的實例方法及相關代碼內容,有需要的朋友學習下吧。

在VC控制臺程序中調用D3DVideoRender時,需要創(chuàng)建新的窗口控件顯示圖像

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include "windows.h"
#include "TCHAR.h"
 
//聲明自定義消息處理函數(shù)
LRESULT CALLBACK WindowProc(
    HWND hwnd,
    UINT uMsg,
    WPARAM wParam,
    LPARAM lParam
    );
 
int _tmain(int argc, _TCHAR* argv[])
{
    HINSTANCE hInstance;
    hInstance = GetModuleHandle(NULL);  //獲取一個應用程序或動態(tài)鏈接庫的模塊句柄
    WNDCLASS Render_WND;
    Render_WND.cbClsExtra = 0;
    Render_WND.cbWndExtra = 0;
    Render_WND.hCursor = LoadCursor(hInstance, IDC_ARROW);  //鼠標風格
    Render_WND.hIcon = LoadIcon(hInstance, IDI_APPLICATION);    //圖標風格
    Render_WND.lpszMenuName = NULL; //菜單名
    Render_WND.style = CS_HREDRAW | CS_VREDRAW; //窗口的風格
    Render_WND.hbrBackground = (HBRUSH)COLOR_WINDOW;    //背景色
    Render_WND.lpfnWndProc = WindowProc;    //【關鍵】采用自定義消息處理函數(shù),也可以用默認的DefWindowProc
    Render_WND.lpszClassName = _T("RenderWindow");  //【關鍵】該窗口類的名稱
    Render_WND.hInstance = hInstance;   //【關鍵】表示創(chuàng)建該窗口的程序的運行實體代號
 
    RegisterClass(&Render_WND);
 
    HWND hwnd = CreateWindow(
        _T("RenderWindow"),           //【關鍵】上面注冊的類名lpszClassName,要完全一致 
        L"Zombie"//窗口標題文字 
        WS_OVERLAPPEDWINDOW, //窗口外觀樣式 
        0,             //窗口相對于父級的X坐標 
        0,             //窗口相對于父級的Y坐標 
        320,                //窗口的寬度 
        240,                //窗口的高度 
        NULL,               //沒有父窗口,為NULL 
        NULL,               //沒有菜單,為NULL 
        hInstance,          //當前應用程序的實例句柄 
        NULL);              //沒有附加數(shù)據(jù),為NULL 
 
    //去標題欄
    SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_CAPTION);
 
    //去邊框
    SetWindowLong(hwnd, GWL_EXSTYLE, GetWindowLong(hwnd, GWL_EXSTYLE) & ~(WS_EX_WINDOWEDGE | WS_EX_DLGMODALFRAME));
 
    // 顯示窗口 
    ShowWindow(hwnd, SW_SHOW);
 
    // 更新窗口 
    UpdateWindow(hwnd);
 
    // 消息循環(huán) 
    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
 
    return 0;
}
 
 
// 自定義消息處理函數(shù)的實現(xiàn)
LRESULT CALLBACK WindowProc(
    _In_  HWND hwnd,
    _In_  UINT uMsg,
    _In_  WPARAM wParam,
    _In_  LPARAM lParam
    )
{
    switch (uMsg)
    {
        case WM_DESTROY:
        {
            PostQuitMessage(0);
            return 0;
        }
 
        case WM_KEYDOWN:
        {
            if (wParam == VK_ESCAPE)//按Esc鍵退出
            {
                PostQuitMessage(0);
                return 0;
            }
        }
    }
    return DefWindowProc(hwnd, uMsg, wParam, lParam);
}

實例擴展:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <iostream>
#include <Windows.h>
using namespace std;
 
 
LRESULT CALLBACK __WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {
 
    PAINTSTRUCT ps;
    HDC hdc;
    switch (msg) {
    case WM_CLOSE:
        MessageBox(NULL,"WM_CLOSE", "", NULL);
        break;
    default:
        break;
    }
 
    return DefWindowProc(hWnd, msg, wParam, lParam);
}
 
int main()
{
    // 窗口屬性初始化
    HINSTANCE hIns = GetModuleHandle(0);
    WNDCLASSEX wc;
    wc.cbSize = sizeof(wc);                             // 定義結構大小
    wc.style = CS_HREDRAW | CS_VREDRAW;                 // 如果改變了客戶區(qū)域的寬度或高度,則重新繪制整個窗口
    wc.cbClsExtra = 0;                                  // 窗口結構的附加字節(jié)數(shù)
    wc.cbWndExtra = 0;                                  // 窗口實例的附加字節(jié)數(shù)
    wc.hInstance = hIns;                                // 本模塊的實例句柄
    wc.hIcon = NULL;                                    // 圖標的句柄
    wc.hIconSm = NULL;                                  // 和窗口類關聯(lián)的小圖標的句柄
    wc.hbrBackground = (HBRUSH)COLOR_WINDOW;            // 背景畫刷的句柄
    wc.hCursor = NULL;                                  // 光標的句柄
    wc.lpfnWndProc = __WndProc;                         // 窗口處理函數(shù)的指針
    wc.lpszMenuName = NULL;                             // 指向菜單的指針
    wc.lpszClassName = "LYSM_class";                    // 指向類名稱的指針
 
    // 為窗口注冊一個窗口類
    if (!RegisterClassEx(&wc)) {
        cout << "RegisterClassEx error : " << GetLastError() << endl;
    }
 
    // 創(chuàng)建窗口
    HWND hWnd = CreateWindowEx(
        WS_EX_TOPMOST,              // 窗口擴展樣式:頂級窗口
        "LYSM_class",               // 窗口類名
        "LYSM_title",               // 窗口標題
        WS_OVERLAPPEDWINDOW,        // 窗口樣式:重疊窗口
        0,                          // 窗口初始x坐標
        0,                          // 窗口初始y坐標
        800,                        // 窗口寬度
        600,                        // 窗口高度
        0,                          // 父窗口句柄
        0,                          // 菜單句柄
        hIns,                       // 與窗口關聯(lián)的模塊實例的句柄
        0                           // 用來傳遞給窗口WM_CREATE消息
    );
    if (hWnd == 0) {
        cout << "CreateWindowEx error : " << GetLastError() << endl;
    }
    UpdateWindow(hWnd);
    ShowWindow(hWnd, SW_SHOW);
 
    // 消息循環(huán)(沒有會導致窗口卡死)
    MSG msg = { 0 };
    while (msg.message != WM_QUIT) {
        // 從消息隊列中刪除一條消息
        if (PeekMessage(&msg, 0, 0, 0, PM_REMOVE)) {           
            DispatchMessage(&msg);
        }
    }
 
    
    cout << "finished." << endl;
    getchar();
end:
 
    getchar();
    return 0;
}

到此這篇關于VC中控制臺程序創(chuàng)建窗口的實例方法的文章就介紹到這了,更多相關VC中控制臺程序如何創(chuàng)建窗口內容請搜索服務器之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/jobsxiao/article/details/52651869

延伸 · 閱讀

精彩推薦
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內存中的數(shù)據(jù)都是暫時的,當程序結束時,它們都將丟失,為了永久性的保存大量的數(shù)據(jù),C語言提供了對文件的操作,這篇文章主要給大家介紹了關于C語言中文件...

    針眼_6702022-01-24
  • C/C++深入理解goto語句的替代實現(xiàn)方式分析

    深入理解goto語句的替代實現(xiàn)方式分析

    本篇文章是對goto語句的替代實現(xiàn)方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網(wǎng)7342020-12-03
  • C/C++c++ 單線程實現(xiàn)同時監(jiān)聽多個端口

    c++ 單線程實現(xiàn)同時監(jiān)聽多個端口

    這篇文章主要介紹了c++ 單線程實現(xiàn)同時監(jiān)聽多個端口的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++學習C++編程的必備軟件

    學習C++編程的必備軟件

    本文給大家分享的是作者在學習使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數(shù)使用

    詳解c語言中的 strcpy和strncpy字符串函數(shù)使用

    strcpy 和strcnpy函數(shù)是字符串復制函數(shù)。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數(shù)使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++C語言實現(xiàn)電腦關機程序

    C語言實現(xiàn)電腦關機程序

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)電腦關機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++C/C++經(jīng)典實例之模擬計算器示例代碼

    C/C++經(jīng)典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關于C/C++經(jīng)典實例之模擬計算器的相關資料,文中通過示...

    jia150610152021-06-07
主站蜘蛛池模板: 国产精品久久久久久久美男 | 国产精品免费大片 | 国产成人99久久亚洲综合精品 | 欧美日韩视频在线第一区 | 亚洲一级片av | 免费一区二区 | 国产一区二区精品在线观看 | 久久久久久久av | 天天操综合网 | 久久久人成影片免费观看 | 日韩精品视频在线 | 欧产日产国产一区 | 亚洲一区免费视频 | 国产一级成人 | 操操操小说 | 日韩三级视频 | 婷婷久久五月 | 日韩av免费看 | 日韩精品极品视频在线观看免费 | 欧美日韩国产精品一区二区 | 欧美精品一区二区在线观看 | 日韩在线 | 久久亚洲国产精品 | a久久| 美女视频黄色 | 国产精品一区二区视频 | 香蕉久久久久久 | 一级α片免费看 | 久久99精品久久久久久久青青日本 | 91精品国产色综合久久不卡蜜臀 | 久久精品国产99国产 | 日本a视频 | 亚洲一区二区三区在线 | 欧美黑人xx | 伊人青青操 | 国产在线视频网 | 国产在线精品一区二区 | 亚洲精品乱码久久久久久蜜桃麻豆 | 中文字幕三级 | 成人国产精品久久久 | a级毛片免费高清视频 |