Win32API的使用例項WndProc

2021-04-17 06:17:35 字數 761 閱讀 4227

對於.net的介面程式設計,特別是對原有的系統控制項的重繪,經常會遇到onpaint不能使用的問題,而事實上,onpaint對於很多的系統控制項都不能使用。在onpaint不能使用的時候,就要使用wndproc方法了。這是乙個捕捉windows訊息的方法,針對不同的windows訊息做不同的反應,如重繪訊息時,重新畫控制項,就可以修改控制項的外觀。

效果圖下面的圖形,就是當combobox是focused時,就會顯示邊框。

**下面是乙個簡單的例子,是對combobox的重繪,在控制項focused的時候,為控制項增加一條邊框,注意到wm_paint訊息就是重繪的,它只是乙個windows訊息,也就是簡單的乙個資料,在這時,它表示15,下面,override wndproc時,增加乙個邊框,this.designmode意思是,當前的是設計模式,如果是設計模式,就不畫了。m.msg ==wm_paint,就是指捕捉重繪訊息,並做出反應,graphics.fromhwnd(handle)意思是獲取graphics的例項,利用combobox的控制代碼,提取出例項。

public

partial

class

combobox : system.windows.forms.combobox

controlpaint.drawborder與g.drawrectangle

是呼叫系統的方法來畫乙個邊框,注意的是,使用這個方法與g.drawrectangle是不同的,在使用rectangle時,大小和位置是不同。這需要自己來體會。同時,controlpaint.drawborder比後者在繪畫時更有效。

掃雷程式 win32API

1 已實現功能 基本的掃雷方塊的展開,方塊周圍雷數的計算,方塊的標旗,勝負的判斷,難度的更改 2 未實現功能 控制台顯示剩餘標旗數量和當前所用時間,選單項的豐富 3 基本原理 使用一張二維int表儲存每個方格的數字資訊,其中9表示雷 將整個雷區 客戶區 按難度分割成方格,每個方格為乙個靜態控制項,用...

win32彙編使用win32 api實現字串拷貝

字串拷貝,呼叫win32的lstrcpy函式 拷貝了以後用訊息框顯示一下 386 model flat,stdcall option casemap none include s masm32 include windows.inc include s masm32 include user32.i...

視窗啟動特效,使用win32 api

一段使用api的視窗特效 自己可以試下,是不是在視窗顯示的時候會顯示各種特殊效果.有點驚喜的感覺 system.runtime.interopservices.dllimport user32 private static extern bool animatewindow intptr hwnd,...