一。如何限制編輯框中的准許字元以及修改輸入的字元
使用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 ...