VC常用技巧集錦 一

2021-04-16 07:51:49 字數 1533 閱讀 7945

一。如何限制編輯框中的准許字元以及修改輸入的字元

使用classwizard處理wm_char訊息,計算nchar參量並決定所執行的操作,使用者可以確定是否修改、傳送字元。下例說明了如何顯示字母字元,如果字元是字母字元,則呼叫cwnd ; onchar,否則不呼叫onchar.

void cmyedit : : onchar (uint nchar , uint nrepcnt , uitn nflags )

如果要修改字元,則不能僅僅簡單地用修改過的nchar呼叫cedit : : onchar,然後cedit: : onchar呼叫cwnd: : default獲取原來的wparam 和lparam 的值 ,這樣是不行的。要修改乙個字元,需要首先修改nchar,然後用修改過的nchar呼叫cwnd: : defwindowproc。下例說明了如何將字元轉變為大寫:

file://make all characters uppercase

void cmyedit : : onchar (uint nchar , uint nrepcnt , uint nflags )

二。在程式執行期間,怎樣禁止視窗右上方的關閉按鈕

cmenu *pmenu = afxgetmainwnd()->getsystemmenu(false) ;

if (pmenu)

pmenu->enablemenuitem(sc_close, mf_bycommand|mf_grayed) ;

// 變為非禁止狀態

cmenu *pmenu = afxgetmainwnd()->getsystemmenu(false) ;

if (pmenu)

pmenu->enablemenuitem(sc_close, mf_bycommand|mf_enabled) ;

三。畫圖螢幕不閃爍的方法

當使視窗的某一區域無效時,系統將傳送wm_update訊息,引發視類的重畫。如果在ondraw()函式中簡單地將所有的圖形物件重畫,將引起明顯的閃爍。因此,需要做相應的處理。本系統採用了先在記憶體中繪製圖形,然後再把繪好的圖形以位圖方式從記憶體拷貝到視窗客戶。

void cdrawview::ondraw(cdc* pdc) }

cbrush brush;

if(!brush.createsolidbrush(rgb(255,255,255)))

return ;

brush.unrealizeobject();

dc.fillrect(client,&brush);//將dc的作圖區重新整理成背景色

if(m_drawobjs.getcount()!=0)

draw(&dc);//將所有的畫圖物件在記憶體裁減區內重畫

pdc->bitblt(client.left,client.top,client.width(),client.height(),

&dc,client.left,client.top,srccopy);//將記憶體裁減區的點陣圖

file://拷貝到視窗裁減區

dc.selectobject(poldbitmap);

}

VC常用技巧集錦 一

一。如何限制編輯框中的准許字元以及修改輸入的字元 使用classwizard處理wm char訊息,計算nchar參量並決定所執行的操作,使用者可以確定是否修改 傳送字元。下例說明了如何顯示字母字元,如果字元是字母字元,則呼叫cwnd onchar,否則不呼叫onchar.void cmyedit ...

VC常用技巧集錦 一

一。如何限制編輯框中的准許字元以及修改輸入的字元 使用classwizard處理wm char訊息,計算nchar參量並決定所執行的操作,使用者可以確定是否修改 傳送字元。下例說明了如何顯示字母字元,如果字元是字母字元,則呼叫cwnd onchar,否則不呼叫onchar.void cmyedit ...

VC常用技巧集錦 一

一。如何限制編輯框中的准許字元以及修改輸入的字元 使用classwizard處理wm char訊息,計算nchar參量並決定所執行的操作,使用者可以確定是否修改 傳送字元。下例說明了如何顯示字母字元,如果字元是字母字元,則呼叫cwnd onchar,否則不呼叫onchar.void cmyedit ...