1. 程式人生 > >day70-----win32-windows的視窗程式框架

day70-----win32-windows的視窗程式框架

window視窗程式設計,類似於linux下的socket程式設計,有一個固定的框架。
這個框架決定了視窗的屬性,也提供了完整的訊息機制。如下:
//標頭檔案,這個標頭檔案中包含了所有的標頭檔案
#include <windows.h>
//Win32的入口函式,類似於標準c語言中的main函式,這是一個回撥函式,由系統執行回撥動作
//引數:
//hInstance:當前Win32程序的控制代碼
//hPreIns:上一個程序的控制代碼,引數已經廢棄
//lpCmdLine:命令列引數
int CALLBACK WinMain(HINSTANCE hInstance,HINSTANCE hPreIns,LPSTR lpCmdLine,int
nShowCmd){ //視窗類,這是一個結構體,定義即將建立的視窗的屬性,一共10個成員變數。 WNDCLASS wc = {0}; //視窗類附加資料快取區 wc.cbClsExtra = 0; //視窗附加資料快取區 wc.cbWndExtra = 0; //視窗背景顏色 wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); //游標型別,NULL表示預設 wc.hCursor = NULL; //圖示型別,NULL表示預設 wc.hIcon = NULL; //當前winMain函式的控制代碼
wc.hInstance = hInstance; //訊息處理函式 wc.lpfnWndProc = WndProc; //視窗類名 wc.lpszClassName = "Main"; //選單選項,NULL表示沒有選單 wc.lpszMenuName = NULL; //視窗類風格 wc.style = CS_HREDRAW|CS_VREDRAW; //向作業系統註冊這個視窗類 RegisterClass(&wc); //建立視窗 HWND hWnd = CreateWindow(wc.lpszClassName
,//視窗類名 "Window",//視窗名 WS_OVERLAPPEDWINDOW,//一般視窗風格 100,//視窗左上角橫座標 100,//視窗左上角縱座標 700,//視窗寬度 500,//視窗高度 NULL, NULL, hInstance,//WinMain函式的控制代碼 0 ); //顯示這個視窗 ShowWnd(hWnd,SW_SHOW); //訊息結構體,用於存放系統傳遞過來的訊息 MSG nMsg = {0}; //訊息迴圈 while(GetMessage(&nMsg,NULL,0,0)){ //翻譯訊息 TranslateMessage(&nMsg); //派發訊息 DispatchMessage(&nMsg); } return 0; } //訊息處理函式 LRESULT CALLBACK WndProc(HWND hwnd,UINT msgId,WPARAM wParam,LPARAM lParam){ return DefWindowProc(hwnd,msgId,wParam,lParam);//系統預設的訊息處理函式 }

相關推薦

day70-----win32-windows視窗程式框架

window視窗程式設計,類似於linux下的socket程式設計,有一個固定的框架。 這個框架決定了視窗的屬性,也提供了完整的訊息機制。如下: //標頭檔案,這個標頭檔案中包含了所有的標頭檔案 #in

Windows API程式設計——最簡單的視窗程式框架示例

 用Windows API實現一個自定義視窗也需要這麼一大堆最基本的程式框架: #include <windows.h> static LPCTSTR lpszAppName = "windows API 視窗示例";//視窗名稱 HBRUSH hBlueB

C++呼叫API初步建立Windows視窗程式

首先在進行介紹前,先介紹一下api,個人理解,api是在windows.h中提供的一些封裝好的函式。 建立一個視窗程式的一般步驟是先註冊一個視窗類名,然後再建立一個視窗,傳遞資訊進行處理(視窗的操作都是通過資訊傳遞來實現的) 下面介紹幾個要用到api函式 RegistetClass()&

遊戲程式設計之DirectX的修煉:二(建立屬於自己的windows視窗程式:下)

上一節給我們寫了一個非常小的win32程式,雖然也是一個完整的win32程式,但是美中不足的是,是什麼那?就是我們使用的視窗是系統給我設計好的,所以我們現在要來設計一個自己的視窗,來裝載你的美麗的遊戲夢。 視窗這東西吧,說難也難,說簡單也不簡單,畢竟是鄙人花時間想出來的。但

最簡單的win32視窗程式

// win32004.cpp : Defines the entry point for the application. // #include "stdafx.h" LRESULT CALLBACK WindowProc(  HWND hwnd,

Windows視窗程式從建立到關閉產生的訊息

Windows是訊息驅動的,理解訊息機制及訊息迴圈是特別重要。知道在什麼情況下產生什麼訊息會讓我們對程式有更好的控制。Windows給應用程式發訊息,有些會加入應用程式的訊息佇列,也是就是佇列訊息。有些直接呼叫視窗訊息處理程式,不會加入到訊息佇列,這部分為非佇列訊息。 下

windows視窗程式輸出printf列印資訊

      有時候因為各種原因會需要輸出printf的列印資訊,廢話不多說如下(只要是Windows平臺下的桌面程式都可以包括QT程式): 注。有些程式要加標頭檔案如下:      #include <fcntl.h>      #include <io

C語言Windows程式開發—Windows視窗樣式與常用控制元件樣式【第04天】

(一)Windows視窗(MDICLIENT)樣式介紹 1 /* Windows視窗樣式 */ 2 WS_BORDER //帶有邊框的視窗 3 WS_CAPTION //帶有標題欄的視窗 4 WS_CHILD

淺談Windows SDK視窗程式的訊息機制

Windows系統的訊息機制 一個庫函式(比如fopen),最終會呼叫作業系統的API來實現其功能,在Windows中,不僅庫函式最終會呼叫系統函式,系統函式反過來也會呼叫使用者函式,這種機制就是通過訊息來實現的。 我們假設程式發生了一項滑鼠點選“關閉”按鈕的操作,系統會發現這次操作,並將這次操作包裝成訊息

微信小程式-day02-微信小程式-框架-配置-pages、windows、tabBars、debug(json檔案)

1.pages(頁面路徑列表) "pages":[ "pages/index/index", "pages/do/do", "pages/eat/eat", "pages/logs/logs" ] 2.windows(全域性的預設視窗表現) "window":{

設定windows介面程式--視窗總在最前

1、程式碼 void setWindowFront(bool bFront) { if (bFront) { #ifdef Q_OS_WIN32 ::SetWindowPos((HWND)this->winId(), HWND_TOPMOST, 0, 0, 0

windows應用程式【二】建立視窗

我們在建立視窗時需要的過程  關於訊息迴圈 因為處理器同時只能執行一個程式 因此我們需要作業系統去排程程式 因此我們只是將訊息傳給作業系統 等待迴應從而由作業系統來顯示我們需要的視窗 wndproc() 視窗過程負責用來響應某一類視窗收到的各種Windows訊息

Directx3D9學習之二:Windows程式設計之最簡單視窗程式

Window style 視窗的風格,定義了一些視窗外觀和表現的標誌組合,WS_OVERLAPPEDWINDO是幾個標誌結合的位或,包含最小化,最大化按鈕,邊框,標題欄等等 第五個引數: Size and position 位置和大小 CW_USEDEFAULT 使用預設值 第六個引數: Parent

Windows程式和訊息機制(一):視窗程式的建立

Windows視窗程式的實現 上面介紹了Windows下的訊息機制,系統傳送訊息到程式,程式接收到訊息後的處理統稱為視窗過程。 要實現視窗過程當然需要先建立一個視窗程式了。視窗程式的建立很簡單,主要分為以下幾個步驟: 註冊視窗類建立視窗及顯示視窗建立訊

win32視窗程式 -----1、載入資源圖示

概要: 一、視窗的建立過程主要包含5個步驟 1、設計視窗 2、註冊視窗 3、建立視窗 4、顯示視窗 5、訊息迴圈 二、載入圖示資源的語句如下: ex.hIcon = LoadIcon(hInstance,MAKEINTRESO

使用 IBM Rational Functional Tester測試 Windows 應用程式: 如何構建結構良好的測試框架

一個好的測試框架需要具備哪些元素呢?雖然對不同的專案而言,答案可能有所不同。但總的來說,一個好的測試框架通常具有以下的共同特點: 分層結構 關注分離 程式碼重用 結構清晰 易於維護 方便除錯 可擴充套件性好 除了以上所述的幾點外,一個好的框架還應該提供相應的通

win32視窗程式-------3、點陣圖及去除背景色

一、載入點陣圖步驟: 1、建立目標DC BegainPaint() 或者GetDc()//視窗的DC 已經包含一張點陣圖 //貼圖片需要兩個DC,一個為目標DC,一個為源DC 2、建立源DC HdcMem=CreateCompatibleD

C#寫的64位windows視窗應用程式打包安裝後提示“未能載入檔案或程式集‘System.Data.SQLite’”解決方法

網上的圖,總之就是類似這種提示 在理一遍出現這種問題的情況: ------在64位機器下打包成64位的應用程式後安裝執行時出現的,除錯過程中沒有。(不是web專案,web專案同樣問題的解決辦法後面有講) 解決方法: ------將所有引用了這個.DLL檔案的專案-&

【轉載】讓 Win32 視窗程式擁有控制檯視窗

讓 Win32 視窗程式擁有控制檯視窗   首先,為什麼我們有了普通視窗後還要控制檯視窗呢?因為我們可以用它方便的輸出除錯資訊,而且普通玩家看到了也會覺得很高階。如果他會輸幾條命令,可能他會以為自己就是黑客了。 示例效果:   WinMain

windows 安裝 keras框架

com 本地 win img 權限 拒絕 pro bsp href 正常安裝完成python 2.7 後使用 pip 安裝keras,import keras時會提示沒有tensorflow 最開始是不支持windows 環境,現在已經兼容windows,但需要使用pyth