锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
]]>
鐢盚Wnd寰楀埌CWnd*錛?br>CWnd wnd;
HWnd hWnd;
wnd.Attach(hWnd);
閫氬父涓涓獥鍙h祫婧愬凡緇忓拰涓涓狢Wnd綾葷殑瀵硅薄鍏寵仈璧鋒潵鐨勶紝鐢變簬涓鑸潵璇磋繖涓被鏄嚜宸卞垱寤虹殑錛屾墍浠ヨ嚜鐒剁煡閬撴庝箞寰楀埌鎸囧悜榪欎釜綾葷殑鎸囬拡銆傚鏋滄病鏈夊氨鍒涘緩涓涓狢Wnd瀵硅薄錛屽皢榪欎釜瀵硅薄涓庣獥鍙h祫婧愮殑hWnd鍙ユ焺鍏寵仈璧鋒潵銆傦紙濡備笂杈圭殑璇彞錛夈傚鏋滅敤
static CWnd* CWnd::FromHandle(HWND hWnd) 錛?br>鍒欒繑鍥炲兼槸涓涓殏鏃剁殑CWnd瀵硅薄錛屽茍涓旀垜浠‘淇濊繑鍥炲間負闈炵┖錛屼篃灝辨槸hWnd鏄湁鏁堢殑銆?nbsp;
static CWnd* CWnd::FromHandlePermanent(HWND hWnd) 錛?br>榪斿洖鐨勬槸涓涓案涔呯殑瀵硅薄銆傚彧鏈夊湪榪斿洖鐨凜Wnd鍦ㄧ被琛ㄩ噷宸茬粡瀛樺湪鏄繑鍥炲間負闈炵┖銆?br>
鐢盋Wnd鑾峰彇HWnd灝卞鏄撳浜嗭紝鍥犱負瀹冪殑涓涓垚鍛榤_hWnd灝辨槸鎵瀵瑰簲紿楀彛鐨勫彞鏌勩?br>wnd->m_hWnd銆?br>
]]>
---- 鍏朵腑鍑芥暟鐨勭涓涓弬鏁版寚瀹氫簡鑳屾櫙棰滆壊錛岀浜屼釜鍙傛暟鎸囧畾浜嗘枃鏈鑹層?
涓嬮潰鐨勪緥瀛愭槸灝嗗簲鐢ㄧ▼搴忓璇濇璁劇疆涓鴻摑鑹茶儗鏅拰綰㈣壊鏂囨湰錛屾楠ゅ涓嬶細
---- 鈶? 鏂板緩涓涓熀浜嶥ialog鐨凪FC AppWizard搴旂敤紼嬪簭ExampleDlg銆?
---- 鈶? 鍦–ExampleDlgApp ::InitInstance()涓坊鍔犲涓嬩唬鐮侊細
BOOL CExampleDlgApp: : InitInstance ( )
{
…
CExampleDlgDlg dlg;
m_pMainWnd = &dlg;
//鍏堜簬DoModal()璋冪敤錛屽皢瀵硅瘽妗嗚緗負钃濊壊鑳屾櫙銆佺孩鑹叉枃鏈?
SetDialogBkColor(RGB(0,0,255),RGB(255,0,0));
int nResponse = dlg.DoModal();
…
}
---- 緙栬瘧騫惰繍琛岋紝姝ゆ椂瀵硅瘽妗嗙殑鑳屾櫙鑹插拰鏂囨湰鑹插凡鍙戠敓浜嗘敼鍙樸傚煎緱娉ㄦ剰鐨?
鏄細鍦ㄨ皟鐢―oModal()涔嬪墠蹇呴』鍏堣皟鐢⊿etDialogBkColor錛屼笖姝ゆ柟娉曟槸灝嗘敼鍙?
搴旂敤紼嬪簭涓墍鏈夌殑瀵硅瘽妗嗛鑹詫紝騫朵笉鑳介拡瀵規煇涓涓寚瀹氱殑瀵硅瘽妗嗐?
---- 鏂規硶浜岋細閲嶈澆OnPaint()錛屽嵆WM_PAINT娑堟伅銆傛湁鍏充唬鐮佸涓嬶紙浠ヤ笂渚嬪伐紼嬩負鍑嗭級錛?
void CExampleDlgDlg::OnPaint()
{
if (IsIconic())
…
else
{
CRect rect;
CPaintDC dc(this);
GetClientRect(rect);
dc.FillSolidRect(rect,RGB(0,255,0)); //璁劇疆涓虹豢鑹茶儗鏅?
CDialog::OnPaint();
}
---- 鏂規硶涓夛細閲嶈澆OnCtlColor (CDC* pDC, CWnd* pWnd, UINT nCtlColor)錛?
鍗砏M_CTLCOLOR娑堟伅銆傚叿浣撴楠ゅ涓嬶紙浠ヤ笂渚嬪伐紼嬩負鍑嗭級錛?
---- 鈶犲湪CExampleDlgDlg鐨勫ご鏂囦歡涓紝娣誨姞涓CBrush鐨勬垚鍛樺彉閲忥細
class CExampleDlgDlg : public CDialog
{
...
protected:
CBrush m_brush;
...
};
---- 鈶″湪OnInitDialog()鍑芥暟涓坊鍔犲涓嬩唬鐮侊細
BOOL CExampleDlgDlg::OnInitDialog()
{
...
// TODO: Add extra initialization here
m_brush.CreateSolidBrush(RGB(0, 255, 0)); // 鐢熸垚涓緇胯壊鍒峰瓙
...
}
---- 鈶㈠埄鐢–lassWizard閲嶈澆OnCtlColor(…)錛屽嵆WM_CTLCOLOR娑堟伅錛?
HBRUSH CExampleDlgDlg::OnCtlColor
(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
/*
** 榪欓噷涓嶅繀緙栧啓浠諱綍浠g爜錛?
**涓嬭浠g爜瑕佹敞閲婃帀
** HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
*/
return m_brush; //榪斿姞緇胯壊鍒峰瓙
}
---- 鏂規硶鍥涳細榪樻槸閲嶈澆OnCtlColor (CDC* pDC, CWnd* pWnd, UINT nCtlColor)錛?
鍗砏M_CTLCOLOR娑堟伅銆傚叿浣撴楠ゅ涓嬶紙浠ヤ笂渚嬪伐紼嬩負鍑嗭級錛?
---- 姝ラ鈶犮佲憽鍚屼笂鏂規硶涓変腑鐨勬楠も憼銆佲憽銆?
---- 姝ラ鈶㈠埄鐢–lassWizard閲嶈澆OnCtlColor(…)錛堝嵆WM_CTLCOLOR娑堟伅錛夋椂鍒欐湁
浜涗笉鍚岋細
HBRUSH CExampleDlgDlg::OnCtlColor
(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
//鍦ㄨ繖鍔犱竴鏉℃槸鍚︿負瀵硅瘽妗嗙殑鍒ゆ柇璇彞
if(nCtlColor ==CTLCOLOR_DLG)
return m_brush; //榪斿姞緇胯壊鍒峰瓙
return hbr;
}
鍘熷笘瑙侊細
http://topic.csdn.net/t/20020821/08/957154.html
]]>
Visual C++鏈変竴縐嶇畝鍗曠殑鏂規硶鐢ㄦ潵紜畾鏄惁鎴愬姛鍒犻櫎浜嗙敾絎旓紝鐢誨埛鍜屽叾浠栬祫婧愶細鍙鍦ㄨ皟璇曠姸鎬佷笅榪愯紼嬪簭銆傚湪搴旂敤紼嬪簭緇堟鏃訛紝娌℃湁閲婃斁鐨勮祫婧愪細鏄劇ず鍦ㄨ皟璇曠獥鍙d腑銆?br>鍦ㄦ渶鏂扮増鏈殑Windows涓紝鍏佽GDI瀵硅薄鍦ㄨ澶囨弿榪拌〃閲婃斁鐨勫墠涓鍒昏鍒犻櫎騫舵病鏈変粈涔堜笉濂界殑褰卞搷錛屽挨鍏舵槸褰撲綘鑳界‘淇濆湪姝ゆ湡闂存病鏈夌敾鍥劇▼搴忔墽琛屾椂鏇存槸濡傛銆備絾鏄氳繃鍙栨秷閫夊畾閫夊叆鐨勫璞¤屽疄鐜版竻闄よ澶囨弿榪拌〃浠嶇劧鏄疻indows緙栫▼涓殑鎯緥銆傚悓鏃朵篃鏄竴縐嶅ソ涔犳儻銆?
]]>
ch = "last";
緙栬瘧鎻愮ず錛歟rror C2106: '=' : left operand must be l-value銆傛墍浠ュ彧鑳藉湪鏁扮粍瀹氫箟鐨勫悓鏃剁敤瀛楃涓插父閲忔潵緇欏畠璧嬪箋?br>浣嗘槸鍐欎笅錛?br>char *pa;
pa = "last";
灝變笉浼氭湁閿欒銆傝鏄庢暟緇勫悕瀛楁槸涓涓父鎸囬拡錛屼笉鑳借閲嶆柊璧嬪箋?br>
]]>
鍦ㄥ悓涓铏氬嚱鏁扮殑鍩虹被鐗堟湰鍜屾淳鐢熺被鐗堟湰浣跨敤涓嶅悓鐨勯粯璁ゅ疄鍙傚嚑涔庝竴瀹氫細寮曡搗楹葷儲錛?br>
璁捐鑹ソ鐨勭被鐨勫眰嬈′腑錛宲ublic媧劇敓綾誨璞″彲浠ョ敤鍦ㄤ換浣曢渶鍩虹被瀵硅薄鐨勫湴鏂廣?br>