基於WinAPI的視窗示例

2021-08-31 01:42:27 字數 1420 閱讀 1225

實現的主要功能如下:

程式預設圖示為?,預設游標為左右箭頭,在指定位置輸出 文字訊息

單擊滑鼠左鍵時,彈出對應點的位置座標(注意座標轉換)

單擊鍵盤的上下左右鍵時,彈出對應的對話方塊(鍵盤訊息的處理方式)

#include "windows.h"

#include "stdio.h"

lresult callback dealmessage(hwnd hwnd, uint umsg, wparam wparam, lparam lparam)

; int x = 10, y = 10;

point pt;//cpoint pt;

getcursorpos(&pt);//該函式檢取游標的位置,以螢幕座標表示, 如果為了與textout 相比的話,則需要將螢幕座標轉換為客戶區座標

screentoclient(hwnd, &pt);//的將螢幕座標轉換為客戶區座標//textout中就是客戶區座標

x = pt.x;

y = pt.y;

wsprintf(buf,text("x = %d , y = %d"),x,y);

messagebox(hwnd,buf,text("座標"),mb_ok);

} break;

//關閉程式

case wm_destroy://wm_quit//只有發這個命令時,關閉除錯程式時,**上的除錯才會結束

postquitmessage(2);

break;

case wm_paint://輸出文字

case wm_keydown://當有鍵盤輸入事件時,會產生 wm_keydown 訊息

break;

} default:

return defwindowproc(hwnd, umsg,wparam, lparam);

} return 0;

}int winapi winmain(

hinstance hinstance,

hinstance hprevinstance,

lpstr lpcmdline,

int nshowcmd)

,cw_usedefault, cw_usedefault,null, null, hinstance, null);//createwindow中視窗類與 wndclass中視窗類名必須一樣才可以,否則也是執行不了

if (!hwnd)

movewindow(hwnd,30,30,580,480,true);//相對整個桌面螢幕的左上角。。。測試過

showwindow(hwnd,sw_normal);

updatewindow(hwnd);

while (getmessage(&msg,null,0,0))

return 1;

}

winAPI視窗程式流程

1 定義入口函式winmain 2 建立乙個視窗 1 設定視窗類wndclass 給成員變數賦值 2 註冊視窗類 3 建立視窗類 4 顯示和更新視窗 3 訊息迴圈 4 視窗過程函式 include 視窗過程函式 lresult callback windowproc in hwnd hwnd,in ...

基於WINAPI的檔案操作

基於winapi的檔案操作 winapi提供了兩種檔案操作函式,一組是為了和16位程式相容,這種函式比較簡單 而另一種是專門為32位程式設計,在使用時就顯得麻煩些,下面我就把這兩組函式一一介紹 一 和16位程式相容的一組函式函式 說明對應bcb庫函式 lopen 開啟檔案 fileopen lclo...

使用WinAPI建立視窗方法

控制台建立視窗 同時有控制台視窗和新建立的視窗 專案型別 控制台應用程式 include windows.h include tchar.h lresult callback windowproc hwnd hwnd,uint umsg,wparam wparam,lparam lparam int...