锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲欧美第一页,欧美视频一区二,国产精品久久9http://m.shnenglu.com/zgysx/category/2783.html鎶掑啓蹇箰蹇?jī)鎯?/description>zh-cnFri, 25 Jul 2008 12:38:19 GMTFri, 25 Jul 2008 12:38:19 GMT60寮傚父澶勭悊http://m.shnenglu.com/zgysx/archive/2008/07/23/56926.htmlwarriorwarriorWed, 23 Jul 2008 05:07:00 GMThttp://m.shnenglu.com/zgysx/archive/2008/07/23/56926.htmlhttp://m.shnenglu.com/zgysx/comments/56926.htmlhttp://m.shnenglu.com/zgysx/archive/2008/07/23/56926.html#Feedback0http://m.shnenglu.com/zgysx/comments/commentRss/56926.htmlhttp://m.shnenglu.com/zgysx/services/trackbacks/56926.html#include <string>

#include 
<stdio.h>
#include 
<windows.h>
#include 
<dbghelp.h>

#pragma comment(lib, 
"Dbghelp.lib")

#define _INNER_TEST 1

#if _DEBUG & !defined( _INNER_TEST )
#define GS_EXCEPTION_BEGIN()
#define    GS_EXCEPTION_END()
#else
#define EXCEPTION_BEGIN() __try {
#define    EXCEPTION_END() } __except( MyUnhandledFilter( GetExceptionInformation() ) ) {}
#endif




LONG WINAPI MyUnhandledFilter(
struct _EXCEPTION_POINTERS * lpExceptionInfo)
{
    LONG ret 
= EXCEPTION_EXECUTE_HANDLER;

    TCHAR szFileName[
64];
    SYSTEMTIME st;
    ::GetLocalTime(
&st);
    wsprintf(szFileName, TEXT(
"%04d-%02d-%02d-%02d-%02d-%02d-%02d-%02d.dmp"), st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond, st.wMilliseconds, /*rand()*/100);

    HANDLE hFile 
= ::CreateFile(szFileName, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL );
    
if (hFile != INVALID_HANDLE_VALUE)
    {
        MINIDUMP_EXCEPTION_INFORMATION ExInfo;

        ExInfo.ThreadId 
= ::GetCurrentThreadId();
        ExInfo.ExceptionPointers 
= lpExceptionInfo;
        ExInfo.ClientPointers 
= false;

        BOOL bOK 
= MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hFile, MiniDumpNormal, &ExInfo, NULL, NULL );

        
if (bOK)
        {
            printf(
"Create Dump File Success!\n");
        }
        
else
        {
            printf(
"MiniDumpWriteDump Failed: %d\n", GetLastError());
        }

        ::CloseHandle(hFile);
    }
    
else
    {
        printf(
"Create File %s Failed %d\n", szFileName, GetLastError());
    }

    std::
string strTip;
    
switch( lpExceptionInfo->ExceptionRecord->ExceptionCode )
    {
    
case STATUS_ACCESS_VIOLATION:
        {
            
char sz[200= {0};
            sprintf( sz, 
"鍐呭瓨璁塊棶鍐茬獊 Access violation, Attempt to %s data at address %p",  lpExceptionInfo->ExceptionRecord->ExceptionInformation[0? "write" : "read", lpExceptionInfo->ExceptionRecord->ExceptionInformation[1]);
            strTip 
= sz;
        }
        
break;

    
case STATUS_BREAKPOINT:
        strTip 
= "鐢ㄦ埛鏂偣 Breakpoint";
        
break;

    
case STATUS_DATATYPE_MISALIGNMENT:
        strTip 
= "鍐呭瓨鍦板潃瀵歸綈閿欒 Address misaligned";
        
break;
#ifdef STATUS_FLOATING_DIVIDE_BY_ZERO
    
case STATUS_FLOATING_DIVIDE_BY_ZERO:
            strTip 
= L"嫻偣鏁伴櫎鏁頒負(fù)0 Floating point divide by 0";
            
break;

    
case STATUS_FLOATING_OVERFLOW:
        strTip 
= L"嫻偣鏁版孩鍑?nbsp;Floating point overflow" ;
        
break;

    
case STATUS_FLOATING_UNDERFLOW:
        strTip 
= L"嫻偣鏁版孩鍑?nbsp;Floating point underflow";
        
break;

    
case STATUS_FLOATING_RESEVERED_OPERAND:
        strTip 
= L"淇濈暀鐨勬誕鐐規(guī)暟鏍煎紡 Reserved Floating point format" ;
        
break;
#endif

    
case STATUS_ILLEGAL_INSTRUCTION:
        strTip 
= "闈炴硶鎸囦護(hù) Illegal instruction" ;
        
break;

    
case STATUS_PRIVILEGED_INSTRUCTION:
        strTip 
= "鐗規(guī)潈鎸囦護(hù) Priviledged instruction" ;
        
break;

    
case STATUS_INTEGER_DIVIDE_BY_ZERO:
        strTip 
= "0闄ゆ暟閿欒 Integer divide by 0" ;
        
break;

    
case STATUS_INTEGER_OVERFLOW:
        strTip 
= "鏁存暟婧㈠嚭 Integer overflow" ;
        
break;

    
case STATUS_SINGLE_STEP:
        strTip 
= "鍗曟鎵ц Single step" ;
        
break;

    
default:
        strTip 
= "鏈畾涔夐敊璇?nbsp;Undefined error.";
    }

    printf( 
"鍙戠敓閿欒鐨勪綅緗槸 %p \n %s\n", lpExceptionInfo->ExceptionRecord->ExceptionAddress, strTip.c_str() );

    
return ret;
}


int _tmain(int argc, _TCHAR* argv[])
{
    
//::SetUnhandledExceptionFilter(MyUnhandledFilter);

    EXCEPTION_BEGIN()
    
int a = 0;
    
int b = 2;
    
//int c = b/a;
    int * p = (int *)1;
    
*= 2;
    strcpy( NULL, NULL );
    
    EXCEPTION_END()
    
return 0;
}



warrior 2008-07-23 13:07 鍙戣〃璇勮
]]>
鍦ㄦ闈㈠緩绔嬪揩鎹鋒柟寮?/title><link>http://m.shnenglu.com/zgysx/archive/2007/01/08/17415.html</link><dc:creator>warrior</dc:creator><author>warrior</author><pubDate>Mon, 08 Jan 2007 02:25:00 GMT</pubDate><guid>http://m.shnenglu.com/zgysx/archive/2007/01/08/17415.html</guid><wfw:comment>http://m.shnenglu.com/zgysx/comments/17415.html</wfw:comment><comments>http://m.shnenglu.com/zgysx/archive/2007/01/08/17415.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.shnenglu.com/zgysx/comments/commentRss/17415.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/zgysx/services/trackbacks/17415.html</trackback:ping><description><![CDATA[聽聽聽 鍦ㄩ槄璇諱唬鐮佷箣鍓嶏紝鍏堢湅涓涓嬪叧浜庘滃揩鎹鋒柟寮忊濈粍浠剁殑緇撴瀯紺烘剰鍥俱?br /><br />聽<img height="128" src="http://www.vckbase.com/document/journal/vckbase43/images/comtut4pic2.jpg" width="296" border="0" /><br />鍥句簩銆佸揩鎹鋒柟寮忕粍浠剁殑鎺ュ彛緇撴瀯紺烘剰鍥?br /><br />銆銆浠庣粨鏋勫浘涓彲浠ョ湅鍑猴紝鈥滃揩鎹鋒柟寮忊濈粍浠?CLSID_ShellLink)錛屾湁3涓紙鍏跺疄涓嶆錛夋帴鍙o紝姣忎釜鎺ュ彛瀹屾垚涓緇勭浉鍏沖姛鑳界殑鍑芥暟銆?IShellLink 鎺ュ彛(IID_IShellLink)鎻愪緵蹇嵎鏂瑰紡鐨勫弬鏁拌鍐欏姛鑳斤紙瑙佸浘涓夛級(jí)錛孖PersistFile 鎺ュ彛(IID_IPersistFile)鎻愪緵蹇嵎鏂瑰紡鎸佺畫鎬ф枃浠剁殑璇誨啓鍔熻兘銆傚璞$殑鎸佺畫鎬?娉?)錛屾槸涓涓潪甯稿父鐢紝騫朵笖鍔熻兘寮哄ぇ鐨勬帴鍙e鏃忋備絾浠婂ぉ錛屾垜浠彧瑕佷簡(jiǎn)瑙e叾涓袱鍑芥暟錛屽氨鍙互浜?jiǎn)锛?xì)IPersistFile::Save()鍜孖PersistFile:Load()銆?娉?)<br /><br />聽<img height="412" src="http://www.vckbase.com/document/journal/vckbase43/images/comtut4pic3.jpg" width="367" border="0" /><br />鍥句笁銆佸揩鎹鋒柟寮忎腑鐨勫悇縐嶅睘鎬?pre>#include < atlconv.h > void CreateShortcut(LPCTSTR lpszExe, LPCTSTR lpszLnk) { // 寤虹珛鍧楁嵎鏂瑰紡 // 鍙傛暟 lpszExe: EXE 鏂囦歡鍏ㄨ礬寰勫悕 // 鍙傛暟 lpszLnk: 蹇嵎鏂瑰紡鏂囦歡鍏ㄨ礬寰勫悕 ::CoInitialize( NULL ); IShellLink * psl = NULL; IPersistFile * ppf = NULL; HRESULT hr = ::CoCreateInstance( // 鍚姩緇勪歡 CLSID_ShellLink, // 蹇嵎鏂瑰紡 CLSID NULL, // 鑱氬悎鐢?娉?) CLSCTX_INPROC_SERVER, // 榪涚▼鍐?Shell32.dll)鏈嶅姟 IID_IShellLink, // IShellLink 鐨?IID (LPVOID *)&psl ); // 寰楀埌鎺ュ彛鎸囬拡 if ( SUCCEEDED(hr) ) { psl->SetPath( lpszExe ); // 鍏ㄨ礬寰勭▼搴忓悕 // psl->SetArguments(); // 鍛戒護(hù)琛屽弬鏁? // psl->SetDescription(); // 澶囨敞 // psl->SetHotkey(); // 蹇嵎閿? // psl->SetIconLocation(); // 鍥炬爣 // psl->SetShowCmd(); // 紿楀彛灝哄 // 鏍規(guī)嵁 EXE 鐨勬枃浠跺悕錛屽緱鍒扮洰褰曞悕 TCHAR szWorkPath[ MAX_PATH ]; ::lstrcpy( szWorkPath, lpszExe ); LPTSTR lp = szWorkPath; while( *lp ) lp++; while( ''\\'' != *lp ) lp--; *lp=0; // 璁劇疆 EXE 紼嬪簭鐨勯粯璁ゅ伐浣滅洰褰? psl->SetWorkingDirectory( szWorkPath ); hr = psl->QueryInterface( // 鏌ユ壘鎸佺畫鎬ф枃浠舵帴鍙f寚閽? IID_IPersistFile, // 鎸佺畫鎬ф帴鍙?IID (LPVOID *)&ppf ); // 寰楀埌鎺ュ彛鎸囬拡 if ( SUCCEEDED(hr) ) { USES_CONVERSION; // 杞崲涓?UNICODE 瀛楃涓? ppf->Save( T2COLE( lpszLnk ), TRUE ); // 淇濆瓨 } } if ( ppf ) ppf->Release(); if ( psl ) psl->Release(); ::CoUninitialize(); } void OnXXX() { CreateShortcut( _T("c:\\winnt\\notepad.exe"), // 璁頒簨鏈▼搴忋傛敞鎰忥紝浣犵殑緋葷粺鏄惁涔熸槸榪欎釜鐩綍錛? _T("c:\\Documents and Settings\\Administrator\\妗岄潰\\鎴戠殑璁頒簨鏈?lnk") ); // 妗岄潰涓婂緩绔嬪揩鎹鋒柟寮?lnk)鏂囦歡鐨勫叏璺緞鍚嶃傛敞鎰忥紝浣犵殑緋葷粺鏄惁涔熸槸榪欎釜鐩綍錛? // 濡傛灉鐢ㄧ▼搴忓疄鐜板鎵炬闈㈢殑璺緞錛屽垯鍙互鏌ユ敞鍐岃〃 // HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders } </pre><img src ="http://m.shnenglu.com/zgysx/aggbug/17415.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zgysx/" target="_blank">warrior</a> 2007-01-08 10:25 <a href="http://m.shnenglu.com/zgysx/archive/2007/01/08/17415.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>璁㎜ist Control鏈塁heck Box 鍜?璁㎜ist Box鏈塁heck Boxhttp://m.shnenglu.com/zgysx/archive/2006/12/30/17030.htmlwarriorwarriorSat, 30 Dec 2006 05:30:00 GMThttp://m.shnenglu.com/zgysx/archive/2006/12/30/17030.htmlhttp://m.shnenglu.com/zgysx/comments/17030.htmlhttp://m.shnenglu.com/zgysx/archive/2006/12/30/17030.html#Feedback0http://m.shnenglu.com/zgysx/comments/commentRss/17030.htmlhttp://m.shnenglu.com/zgysx/services/trackbacks/17030.html 1.璁㎜ist Control鏈塁heck Box
鐢⊿etExtendedStyle鏂規(guī)硶鍙互璁劇疆錛岀湅浠g爜錛?br />錛圕ListCtrl m_ListCtrl;錛?/p>

DWORD dwStyle = m_ListCtrl.GetStyle();
dwStyle |= LVS_EX_CHECKBOXES;
m_ListCtrl.SetExtendedStyle(dwStyle);

2.璁㎜ist Box鏈塁heck Box
棣栧厛錛屽0鏄嶤ontrol鍙橀噺鐨勬椂鍊欑敤CCheckListBox浠f浛CListBox銆?br />鐒跺悗錛屽皢List Box鐨凥as Strings灞炴ф敼涓篢rue錛涙妸Ower Draw灞炴ф敼涓篎ixed銆?/p>

warrior 2006-12-30 13:30 鍙戣〃璇勮
]]>
鍦⊿tatic鎺т歡涓樉紺築MPhttp://m.shnenglu.com/zgysx/archive/2006/12/30/17029.htmlwarriorwarriorSat, 30 Dec 2006 05:28:00 GMThttp://m.shnenglu.com/zgysx/archive/2006/12/30/17029.htmlhttp://m.shnenglu.com/zgysx/comments/17029.htmlhttp://m.shnenglu.com/zgysx/archive/2006/12/30/17029.html#Feedback0http://m.shnenglu.com/zgysx/comments/commentRss/17029.htmlhttp://m.shnenglu.com/zgysx/services/trackbacks/17029.html棣栧厛錛岀粰Static鎺т歡娣誨姞涓涓狢ontrol鍙橀噺錛圛D瑕佹敼浜?jiǎn)浠ュ悗鎵嶈兘娣诲姞鍙橀噺锛屼篃灏辨槸璇碔D涓嶈兘涓篒DC_STATIC錛夛紝鏈緥涓簃_staticTest銆?br />鐒跺悗錛岀敤ModifyStyle鍑芥暟淇敼Static鎺т歡鐨凷tyle錛岃瀹冨彲浠ユ樉紺哄浘鐗囷細(xì)

m_staticTest.ModifyStyle(0, SS_BITMAP | SS_CENTERIMAGE);

鏈鍚庯紝灝辨槸Load鏂囦歡鏄劇ず鍑烘潵錛?/p>

CRect rect;
m_staticTest.GetWindowRect(&rect);

//聽 涓嬮潰鐨勬柟娉曟槸鎸夌収Static鎺т歡鐨勫ぇ灝忔樉紺篵mp錛屽鏋滆瀹夎鍥劇墖瀹為檯澶у皬鏄劇ず錛岀敤榪欎釜鏂規(guī)硶Load鍥劇墖錛?br />//聽 HBITMAP hBmp = (HBITMAP)::LoadImage(0, _T("D:\\test.bmp"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
HBITMAP hBmp = (HBITMAP)::LoadImage(0, _T("D:\\test.bmp"), IMAGE_BITMAP, rect.Width(), rect.Height(), LR_LOADFROMFILE);

m_staticTest.SetBitmap(hBmp);
DeleteObject(hBmp);



warrior 2006-12-30 13:28 鍙戣〃璇勮
]]>
[杞琞VC 鐣岄潰寮鍙?甯歌鐨勯棶棰?/title><link>http://m.shnenglu.com/zgysx/archive/2006/12/28/16952.html</link><dc:creator>warrior</dc:creator><author>warrior</author><pubDate>Thu, 28 Dec 2006 09:54:00 GMT</pubDate><guid>http://m.shnenglu.com/zgysx/archive/2006/12/28/16952.html</guid><wfw:comment>http://m.shnenglu.com/zgysx/comments/16952.html</wfw:comment><comments>http://m.shnenglu.com/zgysx/archive/2006/12/28/16952.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/zgysx/comments/commentRss/16952.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/zgysx/services/trackbacks/16952.html</trackback:ping><description><![CDATA[ <h2> <a id="viewpost1_TitleUrl" href="/mzty/archive/2006/11/14/15149.html"> <font size="3">VC 甯歌鐨勯棶棰?/font> </a> <font size="3"> <br /> <br /> <font color="#000000">錛?錛?濡備綍鍦ㄧ▼搴忎腑鑾峰緱鍏朵粬紼嬪簭鐨?鍥炬爣?<br />涓ょ鏂規(guī)硶:<br />(1) SDK鍑芥暟 SHGetFileInfo 鎴栦嬌鐢?ExtractIcon鑾峰緱鍥炬爣璧勬簮鐨?handle,<br />(2) SDK鍑芥暟 SHGetFileInfo 鑾峰緱鏈夊叧鏂囦歡鐨勫緢澶氫俊鎭?濡傚ぇ灝忓浘鏍?灞炴? 綾誨瀷絳?</font> </font> </h2> <h2> <font size="3"> <font color="#808080"> <font color="#000000">void CSampleView:<br />OnDraw(CDC * pDC)<br />{<br />if( :: SHGetFileInfo(_T("c:\\pwin95\\notepad.exe"),0,<br />&stFileInfo,sizeof(stFileInfo),SHGFI_ICON))<br />{<br />pDC ->DrawIcon(10,10,stFileInfo.hIcon)<br />}<br />}<br />Example(2):鍚屾牱鍔熻兘,Use ExtractIcon Function<br />void CSampleView:: OnDraw(CDC *pDC)<br />{<br />HICON hIcon=:: ExtractIcon(AfxGetInstanceHandle(),_T<br />("NotePad.exe"),0)<br />if (hIcon &&hIcon!=(HICON)-1)<br />pDC->DrawIcon(10,10,hIcon)<br />}</font> <br /> </font> <br />聽聽聽聽璇存槑: 鑾峰緱notepad.exe鐨勮礬寰勬瑙勪笂鏉ヨ鐢℅etWindowsDirectory鍑芥暟寰楀埌, 濡傛灉鏄皟鐢?win95涓嬬殑鐢葷瑪錛屽簲璇ョ敤璁塊棶娉ㄥ唽琛ㄧ殑鏂規(guī)硶鑾峰緱鍏惰礬寰勶紝瑕佷綔鎴愪竴涓瘮杈冭冪┒鐨勭▼搴忥紝鑰冭檻搴旇鍏ㄩ潰鐐? </font> </h2> <div id="hvzpftn" class="postbody"> <div id="hvzpftn" class="postbody"> <div id="hvzpftn" class="postcontent"> <p> <br /> <br />錛?錛?濡備綍鏀瑰彉紿楀彛鐨勫浘鏍?<br />鍚戠獥鍙e彂閫?WM_SECTION娑堟伅銆?br />Example:<br />HICON hIcon=AfxGetApp() ->LoadIcon(IDI_ICON)<br />ASSERT(hIcon)<br />AfxGetMainWnd() ->SendMessage(WM_SECTION,TRUE,(LPARAM)hIcon)<br /></p>錛?錛?濡備綍灝嗙獥鍙e眳涓樉紺?<br />Call Function CWnd::CenterWindows()<br /><br />Example(1):<br />Center Window( ) //Relative to it's parent<br />// Relative to Screen<br />Example(2):<br />CenterWindow(CWnd:: GetDesktopWindow( ))<br />//Relative to Application's MainWindow<br />AfxGetMainWnd( ) ->CenterWindow( )<br /><p><br />聽</p><p>錛?2錛?濡備綍鍒涘緩涓涓瓧鍥炵粫鐨凜EditView<br />閲嶈澆CWnd : : PreCreateWindow鍜屼慨鏀笴REATESTRUCT緇撴瀯錛屽叧闂瑿EditView瀵硅薄鐨凟S_AUTOHSCROLL鍜學(xué)S_HSCROLL椋庢牸浣嶏紝 鐢變簬CEditView : : PreCreateWindow鏄劇ず璁劇疆cs. style錛岃皟鐢ㄥ熀綾誨嚱鏁板悗瑕佷慨鏀筩s . style銆?br /><br />BOOL CSampleEDitView : : PreCreateWindow (CREATESTRUCT&cs)<br />{<br />//First call basse class function .<br />BOOL bResutl =CEditView : : PreCreateWindow (cs)<br /><br />// Now specify the new window style .<br />cs.style &= ~ (ES_AUTOHSCROLL 锝淲S_HSCROLL)<br />return bResult<br />}<br /></p><p><br />錛?7錛?濡備綍鍗曞嚮闄や簡(jiǎn)紿楀彛鏍囬鏍忎互澶栫殑鍖哄煙浣跨獥鍙gЩ鍔?br />褰撶獥鍙i渶瑕佺‘瀹氶紶鏍囦綅緗椂Windows鍚戠獥鍙e彂閫乄M_NCHITTEST淇℃伅錛屽彲浠ュ鐞嗚淇℃伅浣縒indows璁や負(fù)榧犳爣鍦ㄧ獥鍙f爣棰樹笂銆傚浜庡璇濇鍜屽熀浜庡璇濈殑搴旂敤紼嬪簭錛屽彲浠ヤ嬌鐢–lassWizard澶勭悊璇ヤ俊鎭茍璋冪敤鍩虹被鍑芥暟錛?濡傛灉鍑芥暟榪斿洖HTCLIENT 鍒欒〃鏄庨紶鏍囧湪瀹㈡埧鍖哄煙錛岃繑鍥濰TCAPTION琛ㄦ槑榧犳爣鍦╓indows鐨勬爣棰樻爮涓?br />UINT CSampleDialog : : OnNcHitTest (Cpoint point )<br />{<br />UINT nHitTest =Cdialog: : OnNcHitTest (point )<br />return (nHitTest = =HTCLIENT)? HTCAPTION : nHitTest<br />}<br /><br />涓婅堪鎶鏈湁涓ょ偣涓嶅埄涔嬪錛?br />鍏朵竴鏄湪紿楀彛鐨勫鎴峰尯鍩熷弻鍑?yán)L椂錛岀獥鍙e皢鏋佸ぇ錛?br />鍏朵簩錛?瀹冧笉閫傚悎鍖呭惈鍑犱釜瑙嗙獥鐨勪富妗嗙獥鍙c?br />榪樻湁涓縐嶆柟娉曪紝褰撶敤鎴鋒寜涓嬮紶鏍囧乏閿嬌涓繪紿楀彛璁や負(fù)榧犳爣鍦ㄥ叾紿楀彛鏍囬涓婏紝浣跨敤ClassWizard鍦ㄨ紿椾腑澶勭悊WM_LBUTTODOWN淇℃伅騫跺悜涓繪紿楀彛鍙戦佷竴涓猈M_NCLBUTTONDOWN淇℃伅鍜屼竴涓崟鍑?yán)L祴璇旽TCAPTION銆?br />void CSampleView : : OnLButtonDown (UINT nFlags , Cpoint point<br />)<br />{<br />CView : : OnLButtonDow (nFlags , pont )<br /><br />//Fool frame window into thinking somene clicked<br />on<br />its caption bar .<br />GetParentFrame ( ) 鈥?gt; PostMessage (<br />WM_NCLBUTTONDOWN ,<br />HTCAPTION , MAKELPARAM (poitn .x , point .y) )<br /><br />}<br />璇ユ妧鏈篃閫傜敤浜庡璇濇鍜屽熀浜庡鐨勫簲鐢ㄧ▼搴忥紝鍙槸涓嶅繀璋冪敤<br />CWnd: :GetParentFrame 銆?br />void CSampleDialog : : OnLbuttonDown (UINT nFlags, Cpoint point )<br />{<br />Cdialog : : OnLButtonDow (nFlags, goint )<br />//Fool dialog into thinking simeone clicked on its<br />caption bar .<br />PostMessage (WM_NCLBUTTONDOWN , HTCAPTION , MAKELPARM (point.x<br />, point. y<br />) )<br />}</p><p>錛?8錛?濡備綍鏀瑰彉瑙嗙獥鐨勮儗鏅鑹?br />Windows鍚戠獥鍙e彂閫佷竴涓猈M_ERASEBKGND娑堟伅閫氱煡璇ョ獥鍙f摝闄よ儗鏅紝鍙互浣跨敤ClassWizard閲嶈澆璇ユ秷鎭殑緙虹渷澶勭悊紼嬪簭鏉ユ摝闄よ儗鏅紙瀹為檯鏄敾錛夛紝騫惰繑鍥濼RUE浠ラ槻姝indows鎿﹂櫎紿楀彛銆?br />//Paint area that needs to be erased.<br />BOOL CSampleView : : OnEraseBkgnd (CDC* pDC)<br />{<br />// Create a pruple brush.<br />CBrush Brush (RGB (128 , 0 , 128) )<br /><br />// Select the brush into the device context .<br />CBrush* pOldBrush = pDC鈥?gt;SelcetObject (&brush)<br /><br />// Get the area that needs to be erased .<br />CRect reClip<br />pDC鈥?gt;GetCilpBox (&rcClip)<br />//Paint the area.<br />pDC鈥?gt; PatBlt (rcClip.left , rcClip.top , rcClip.Width ( ) , rcClip.Height( ) , PATCOPY )<br /><br />//Unselect brush out of device context .<br />pDC鈥?gt;SelectObject (pOldBrush )<br /><br />// Return nonzero to half fruther processing .<br />return TRUE<br />}</p><p>錛?0錛?濡備綍闃叉涓繪紿楀彛鍦ㄥ叾璇存槑涓樉紺烘椿鍔ㄧ殑鏂囨。鍚?br />鍒涘緩涓繪紿楀彛鍜孧DI瀛愮獥鍙h繘閫氬父鍏鋒湁FWS_ADDTOTITLE椋庢牸浣嶏紝濡傛灉涓嶅笇鏈涘湪璇存槑涓嚜鍔ㄦ坊鍔犳枃妗e悕錛?蹇呴』紱佹璇ラ鏍間綅錛?鍙互浣跨敤ClassWizard閲嶇疆<br />CWnd: : PreCreateWindow騫跺叧闂璅WS_ADDTOTITLE椋庢牸銆?br />BOOL CMainFrame : : PreCreateWindow (CREATESTRUCT&cs)<br />{<br />//Turn off FWS_ADDTOTITLE in main frame .<br />cs.styel & = ~FWS_ADDTOTITLE 銆<br />return CMDIFrameWnd : : PreCreateWindow (cs )<br />}<br />鍏抽棴MDI瀛愮獥鍙g殑FWS _ADDTOTITLE椋庢牸灝嗗垱寤轟竴涓叿鏈夌┖鏍囬鐨勭獥鍙o紝鍙互璋冪敤CWnd: : SetWindowText鏉ヨ緗爣棰樸傝浣忚嚜宸辮緗爣棰樻椂瑕侀伒寰帴鍙i鏍兼寚鍗椼?/p><p>錛?1錛?濡備綍鑾峰彇鏈夊叧紿楀彛姝e湪澶勭悊鐨勫綋鍓嶆秷鎭殑淇℃伅<br />璋冪敤CWnd: : GetCurrentMessage鍙互鑾峰彇涓涓狹SG鎸囬拡銆備緥濡傦紝鍙互浣跨敤ClassWizard灝嗗嚑涓彍鍗曢」澶勭悊紼嬪簭鏄犲皠鍒頒竴涓嚱鏁頒腑錛岀劧鍚庤皟鐢℅etCurrentMessage鏉ョ‘瀹氭墍閫変腑鐨勮彍鍗曢」銆?br />viod CMainFrame : : OnCommmonMenuHandler ( )<br />{<br />//Display selected menu item in debug window .<br />TRACE ("Menu item %u was selected . \n" ,</p><p>錛?2錛?濡備綍鍦ㄤ唬鐮佷腑鑾峰彇宸ュ叿鏉″拰鐘舵佹潯鐨勬寚閽?br />緙虹渷鏃訛紝 宸ヤ綔妗嗗垱寤虹姸鎬佹潯鍜屽伐鍏鋒潯鏃跺皢瀹冧滑浣滀負(fù)涓繪紿楀彛鐨勫瓙紿楀彛錛岀姸鎬佹潯鏈変竴涓狝FX_IDW_STATUS_BAR鏍囪瘑絎︼紝宸ュ叿鏉℃湁涓涓狝FX_IDW_TOOLBAR鏍囪瘑絎︼紝涓嬩緥璇存槑浜?jiǎn)濡備綍閫氳繃涓璧瘋皟鐢–Wnd: : GetDescendantWindow鍜孉fxGetMainWnd鏉ヨ幏鍙栬繖浜涘瓙紿楀彛鐨勬寚閽堬細(xì)<br />//Get pointer to status bar .<br />CStatusBar * pStatusBar = (CStatusBar *) AfxGetMainWnd ( )<br />鈥?gt; GetDescendantWindow(AFX_IDW_STUTUS_BAR)<br /><br />//Get pointer to toolbar .<br />CToolBar * pToolBar = (CToolBar * ) AfxGetMainWnd ( )<br />鈥?gt; GetDescendantWindow(AFX_IDW_TOOLBAR)</p><p>錛?3錛?濡備綍浣胯兘鍜岀姝㈠伐鍏鋒潯鐨勫伐鍏鋒彁紺?br />濡傛灉璁劇疆浜?jiǎn)CBRS_TOOLTIPS椋庢牸浣嶏紝宸ュ叿鏉″皢鏄劇ず宸ュ叿鎻愮ず錛岃浣胯兘鎴栬呯姝㈠伐鍏鋒彁紺猴紝闇瑕佽緗垨鑰呮竻闄よ椋庢牸浣嶃備笅渚嬮氳繃璋冪敤CControlBar : : GetBarStyle鍜孋ControlBar : : SetBarStyle寤虹珛涓涓畬鎴愭鍔熻兘鐨勬垚鍛樺嚱鏁幫細(xì)<br />void CMainFrame : : EnableToolTips ( BOOL bDisplayTips )<br />{<br />ASSERT_VALID (m_wndToolBar)<br /><br />DWORD dwStyle = m _wndToolBar.GetBarStyle ( )<br /><br />if (bDisplayTips) dwStyle 锝?CBRS_TOOLTIPS<br /><br />else<br />dwStyle & = ~CBRS_TOOLTIPS<br /><br />m_wndToolBar.SetBarStyle (dwStyle )<br />}</p><p>錛?4錛?濡備綍鍒涘緩涓涓笉瑙勫垯褰㈢姸鐨勭獥鍙?br />鍙互浣跨敤鏂扮殑SDK鍑芥暟SetWindowRgn銆傝鍑芥暟灝嗙粯鐢誨拰榧犳爣娑堟伅闄愬畾鍦ㄧ獥鍙g殑涓涓寚瀹氱殑鍖哄煙錛屽疄闄呬笂浣跨獥鍙f垚涓烘寚瀹氱殑涓嶈鍒欏艦鐘躲?浣跨敤AppWizard鍒涘緩涓涓熀浜庡鐨勫簲鐢ㄧ▼搴忓茍浣跨敤璧勬簮緙栬緫鍣ㄤ粠涓誨璇濊祫婧愪腑鍒犻櫎鎵鍦ㄧ殑緙虹渷鎺т歡銆佹爣棰樹互鍙?qiáng)杈圭晫銆?br />緇欏璇濈被澧炲姞涓涓狢Rgn鏁版嵁鎴愬憳錛屼互鍚庤浣跨敤璇ユ暟鎹垚鍛樺緩绔嬬獥鍙e尯鍩熴?br />Class CRoundDlg : public CDialog<br />{<br />鈥?br />private :<br />Crgn m_rgn : // window region<br />鈥?br />}<br />淇敼OnInitDialog鍑芥暟寤虹珛涓涓き鍦嗗尯鍩熷茍璋冪敤SetWindowRgn灝嗚鍖哄煙鍒嗛厤緇欑獥鍙o細(xì)<br />BOOL CRoundDlg : : OnInitDialog ( )<br />{<br />CDialog : : OnInitDialog ( )<br /><br />//Get size of dialog .<br />CRect rcDialog<br />GetClientRect (rcDialog )<br /><br />// Create region and assign to window .<br />m_rgn . CreateEllipticRgn (0 , 0 , rcDialog.Width( ) , rcDialog.Height ( ) )<br />SetWindowRgn (GetSafeHwnd ( ) , (HRGN) m_ rgn ,TRUE )<br /><br />return TRUE<br />}<br /><br />閫氳繃寤虹珛鍖哄煙鍜岃皟鐢⊿etWindowRgn錛屽凡緇忓緩绔嬩竴涓笉瑙勫垯褰㈢姸鐨勭獥鍙o紝涓嬮潰鐨勪緥瀛愮▼搴忔槸淇敼OnPaint鍑芥暟浣跨獥鍙e艦鐘剁湅璧鋒潵璞′竴涓悆褰綋銆?br />voik CRoundDlg : : OnPaint ( )<br />{<br />CPaintDC de (this) // device context for painting<br />.<br />//draw ellipse with out any border<br />dc. SelecStockObject (NULL_PEN)<br />//get the RGB colour components of the sphere color<br />COLORREF color= RGB( 0 , 0 , 255)<br />BYTE byRed =GetRValue (color)<br />BYTE byGreen = GetGValue (color)<br />BYTE byBlue = GetBValue (color)<br /><br />// get the size of the view window<br />Crect rect<br />GetClientRect (rect)<br /><br />// get minimun number of units<br />int nUnits =min (rect.right , rect.bottom )<br /><br />//calculate he horiaontal and vertical step size<br />float fltStepHorz = (float) rect.right /nUnits<br />float fltStepVert = (float) rect.bottom /nUnits<br /><br /><br />int nEllipse = nUnits/3 // calculate how many to<br />draw<br />int nIndex<br />// current ellipse that is being draw<br /><br />CBrush brush<br />// bursh used for ellipse fill color<br />CBrush *pBrushOld // previous<br />brush that was selected into dc<br />//draw ellipse , gradually moving towards upper-right<br />corner<br />for (nIndex = 0 nIndes < + nEllipse nIndes++)<br />{<br />//creat solid brush<br />brush . CreatSolidBrush (RGB ( ( (nIndex*byRed ) /nEllipse ).<br />( ( nIndex * byGreen ) /nEllipse ), ( (nIndex * byBlue)<br />/nEllipse ) ) )<br /><br />//select brush into dc<br />pBrushOld= dc .SelectObject (&brhsh)<br /><br />//draw ellipse<br />dc .Ellipse ( (int) fltStepHorz * 2, (int) fltStepVert * nIndex ,<br />rect. right -( (int) fltStepHorz * nIndex )+ 1,<br />rect . bottom -( (int) fltStepVert * (nIndex *2) ) +1)<br /><br />//delete the brush<br />brush.DelecteObject ( )<br />}<br />}<br /><br />鏈鍚庯紝澶勭悊WM_NCHITTEST娑堟伅錛屼嬌褰撳嚮鎵撶獥鍙g殑浠諱綍浣嶇疆鏃惰兘縐誨姩紿楀彛銆?br />UINT CRoundDlg : : OnNchitTest (Cpoint point )<br />{<br />//Let user move window by clickign anywhere on thewindow .<br />UINT nHitTest = CDialog : : OnNcHitTest (point)<br />rerurn (nHitTest = = HTCLIENT)? HTCAPTION: nHitTest<br /><br />}</p><p>錛?7錛?濡備綍鍒涘緩鍜屼嬌鐢ㄦ棤妯″紡瀵硅瘽妗?br />MFC灝嗘ā寮忓拰鏃犳ā寮忓璇濆皝瑁呭湪鍚屼竴涓被涓紝浣嗘槸浣跨敤鏃犳ā寮忓璇濋渶瑕佸嚑涓璇濋渶瑕佸嚑涓澶勭殑姝ラ銆傞鍏堬紝浣跨敤璧勬簮緙栬緫鍣ㄥ緩绔嬪璇濊祫婧愬茍浣跨敤ClassWizard鍒涘緩涓涓狢Dialog鐨勬淳鐢熺被銆傛ā寮忓拰鏃犳ā寮忓璇濈殑涓鏄笉涓鏍風(fēng)殑錛氭ā寮忓璇濋氳繃璋冪敤CDialog : : EndDialog 鏉ヤ腑姝紝鏃犳ā寮忓璇濆垯鏄皟鐢–Wnd: : DestroyWindow鏉ヤ腑姝㈢殑錛屽嚱鏁癈Dialog : : OnOK鍜孋Dialog : : OnCancel璋冪敤EndDialog ,鎵浠ラ渶瑕佽皟鐢―estroyWindow騫墮噸緗棤妯″紡瀵硅瘽鐨勫嚱鏁般?br />void CSampleDialog : : OnOK ( )<br />{<br />// Retrieve and validate dialog data .<br />if (! UpdateData (TRUE) )<br />{<br />// the UpdateData rountine<br />will set focus to correct item TRACEO (" UpdateData failed during dialog termination .\n")<br />return<br />}<br /><br />//Call DestroyWindow instead of EndDialog .<br />DestroyWindow ( )<br />}<br /><br />void CSampleDialog : : OnCancel ( )<br />{<br />//Call DestroyWindow instead of EndDialog .<br />DestroyWindow ( )<br />}<br /><br />鍏舵錛岄渶瑕佹紜垹闄よ〃紺哄璇濈殑C++瀵硅薄銆傚浜庢ā寮忓鏉ヨ錛岃繖寰堝鏄擄紝闇瑕佸垱寤哄嚱鏁拌繑鍥炲悗鍗沖彲鍒犻櫎C++瀵硅薄錛涙棤妯″紡瀵硅瘽涓嶆槸鍚屾鐨勶紝鍒涘緩鍑芥暟璋冪敤鍚庣珛鍗寵繑鍥烇紝鍥犺岀敤鎴蜂笉鐭ラ亾浣曟椂鍒犻櫎C++瀵硅薄銆傛挙閿紿楀彛鏃跺伐浣滄璋冪敤CWnd : : PostNcDestroy錛屽彲浠ラ噸緗鍑芥暟騫舵墽琛屾竻闄ゆ搷浣滐紝璇稿鍒犻櫎this鎸囬拡銆?br />void CSampleDialog : : PostNcDestroy ( )<br />{<br />// Declete the C++ object that represents this dialog.<br />delete this<br />}<br /><br />鏈鍚庯紝瑕佸垱寤烘棤妯″紡瀵硅瘽銆傚彲浠ヨ皟鐢–Dialog : : DoModal鍒涘緩涓涓ā寮忓鏀撅紝瑕佸垱寤轟竴涓棤妯″紡瀵硅瘽鍒欒璋冪敤CDialog: : Create銆備笅闈㈢殑渚嬪瓙璇存槑 浜?jiǎn)搴旂敤绋嬪簭鏄浣曞垱寰忔棤妯″紡瀵硅瘽鐨勫Q?璞★紱鏃犳ā寮忓璇濅笉鏄悓姝ョ殑錛屽垱寤哄嚱鏁拌皟鐢ㄥ悗绔嬪嵆榪斿洖錛?br />void CMainFrame : : OnSampleDialog ( )<br />{<br />//Allocate a modeless dialog object .<br />CSampleDilog * pDialog =new CSampleDialog<br />ASSERT_VALID (pDialog) Destroy ( )<br /><br />//Create the modeless dialog . represents this dialog.<br />BOOL bResult = pDialog 鈥?gt; Create (IDD_IDALOG)<br />ASSERT (bResult )<br />}<br /></p><p></p><p>錛?8錛?濡備綍闃叉涓繪紿楀彛鍦ㄥ叾璇存槑涓樉紺烘椿鍔ㄧ殑鏂囨。鍚?br />鍒涘緩涓繪紿楀彛鍜孧DI瀛愮獥鍙h繘閫氬父鍏鋒湁FWS_ADDTOTITLE椋庢牸浣嶏紝濡傛灉涓嶅笇鏈涘湪璇存槑涓嚜鍔ㄦ坊鍔犳枃妗e悕錛?蹇呴』紱佹璇ラ鏍間綅錛?鍙互浣跨敤ClassWizard閲嶇疆<br />CWnd: : PreCreateWindow騫跺叧闂璅WS_ADDTOTITLE椋庢牸銆?br />BOOL CMainFrame : : PreCreateWindow (CREATESTRUCT&cs)<br />{<br />//Turn off FWS_ADDTOTITLE in main frame .<br />cs.styel & = ~FWS_ADDTOTITLE 銆<br />return CMDIFrameWnd : : PreCreateWindow (cs )<br />}<br />鍏抽棴MDI瀛愮獥鍙g殑FWS _ADDTOTITLE椋庢牸灝嗗垱寤轟竴涓叿鏈夌┖鏍囬鐨勭獥鍙o紝鍙互璋冪敤CWnd: : SetWindowText鏉ヨ緗爣棰樸傝浣忚嚜宸辮緗爣棰樻椂瑕侀伒寰帴鍙i鏍兼寚鍗椼?/p><p><br />錛?0錛?鎬庢牱鍔犺澆鍏朵粬鐨勫簲鐢ㄧ▼搴?<br />涓変釜SDK鍑芥暟 winexec, shellexecute,createprocess鍙互浣跨敤銆?br />WinExec鏈綆鍗曪紝涓や釜鍙傛暟錛屽墠涓涓寚瀹氳礬寰勶紝鍚庝竴涓寚瀹氭樉紺烘柟寮?鍚庝竴涓弬鏁板煎緱璇翠竴涓嬶紝姣斿娉ョ敤 SW_SHOWMAXMIZED鏂瑰紡鍘誨姞杞戒竴涓棤鏈澶у寲鎸夐挳鐨勭▼搴忥紝灝辨槸Neterm,calc絳夌瓑錛屽氨涓嶄細(xì)鍑虹幇姝e父鐨勭獥浣擄紝浣嗘槸宸茬粡琚姞鍒頒換鍔″垪琛ㄩ噷浜?jiǎn)銆?br /><br />ShellExecute杈?WinExex鐏墊椿涓鐐癸紝鍙互鎸囧畾宸ヤ綔鐩綍,涓嬮潰鐨凟xample灝辨槸鐩存帴鎵撳紑 c:\temp\1.txt,鑰屼笉鐢ㄥ姞杞戒笌 txt鏂囦歡鍏寵仈鐨勫簲鐢ㄧ▼搴?寰堝瀹夎紼嬪簭瀹屾垚鍚庨兘浼?xì)鎵撳紑涓涓獥鍙o紝鏉ユ樉紺篟eadme or Faq,鎴戠寽灝辨槸榪欎箞浣滅殑鍟?<br /><br />ShellExecute(NULL,NULL,_T("1.txt"),NULL,_T("c:\\temp"),SW_SHOWMAXMIZED)<br /><br />CreateProcess鏈澶嶆潅錛屼竴鍏辨湁鍗佷釜鍙傛暟錛屼笉榪囧ぇ閮ㄥ垎閮藉彲浠ョ敤NULL浠f浛錛屽畠鍙互鎸囧畾榪涚▼鐨勫畨鍏ㄥ睘鎬э紝緇ф壙淇℃伅錛岀被鐨勪紭鍏堢駭絳夌瓑.鏉ョ湅涓緢綆鍗曠殑Example:<br />STARTUPINFO stinfo<br />//鍚姩紿楀彛鐨勪俊鎭?br />PROCESSINFO procinfo //榪涚▼鐨勪俊鎭?br /><br />CreateProcess(NULL,_T("notepad.exe"),NULL,NULL.FALSE,<br />NORMAL_PRIORITY_<br /><br />CLASS,NULL,NULL, &stinfo,&procinfo)<br /></p><p><br />錛?2錛?濡備綍浣胯兘鍜岀姝㈠伐鍏鋒潯鐨勫伐鍏鋒彁紺?br />濡傛灉璁劇疆浜?jiǎn)CBRS_TOOLTIPS椋庢牸浣嶏紝宸ュ叿鏉″皢鏄劇ず宸ュ叿鎻愮ず錛岃浣胯兘鎴栬呯姝㈠伐鍏鋒彁紺猴紝闇瑕佽緗垨鑰呮竻闄よ椋庢牸浣嶃備笅渚嬮氳繃璋冪敤CControlBar : : GetBarStyle鍜孋ControlBar : : SetBarStyle寤虹珛涓涓畬鎴愭鍔熻兘鐨勬垚鍛樺嚱鏁幫細(xì)<br />void CMainFrame : : EnableToolTips ( BOOL bDisplayTips )<br />{<br />ASSERT_VALID (m_wndToolBar)<br /><br />DWORD dwStyle = m _wndToolBar.GetBarStyle ( )<br /><br />if (bDisplayTips) dwStyle 锝?CBRS_TOOLTIPS<br /><br />else<br />dwStyle & = ~CBRS_TOOLTIPS<br /><br />m_wndToolBar.SetBarStyle (dwStyle )<br />}<br /><br />//Get pointer to toolbar .<br />CToolBar * pToolBar = (CToolBar * ) AfxGetMainWnd ( )<br />鈥?gt; GetDescendantWindow(AFX_IDW_TOOLBAR)</p><p>錛?3錛?濡備綍璁劇疆宸ュ叿鏉℃爣棰?br />宸ュ叿鏉℃槸涓涓獥鍙o紝鎵浠ュ彲浠ュ湪璋冪敤CWnd : : SetWindowText鏉ヨ緗爣棰橈紝渚嬪瓙濡備笅錛?br />int CMainFrame : : OnCreate (LPCREATESTRUCT lpCreateStruct )<br />{<br />鈥?br />// Set the caption of the toolbar .<br />m_wndToolBar.SetWindowText (_T "Standdard")<br /></p><p>}<br /><br />錛?6錛?濡備綍鏀瑰彉瀵硅瘽鎴栫獥浣撹紿楃殑鑳屾櫙棰滆壊<br />璋冪敤CWinApp : : SetDialogBkColor鍙互鏀瑰彉鎵鏈夊簲鐢ㄧ▼搴忕殑鑳屾櫙棰滆壊銆傜涓涓弬鏁版寚瀹氫簡(jiǎn)鑳屾櫙棰滆壊錛岀浜屼釜鍙傛暟鎸囧畾浜?jiǎn)鏂囨湰棰滆墝觻備笅渚嬪皢搴旂敤紼嬪簭瀵硅瘽璁劇疆涓鴻摑鑹茶儗鏅拰榛勮壊鏂囨湰銆?br />BOOL CSampleApp : : InitInstance ( )<br />{<br />鈥?br />//use blue dialog with yellow text .<br />SetDialogBkColor (RGB (0, 0, 255 ), RGB ( 255 ,255 , 0 ) )<br />鈥?br />}<br /><br />闇瑕侀噸鐢誨璇濓紙鎴栧璇濈殑瀛愭帶浠訛級(jí)鏃訛紝W(xué)indows鍚戝璇濆彂閫佹秷鎭疻M_CTLCOLOR錛岄氬父鐢ㄦ埛鍙互璁¦indows閫夋嫨緇樼敾鑳屾櫙鐨勫埛瀛愶紝涔熷彲閲嶇疆璇ユ秷鎭寚瀹氬埛瀛愩備笅渚嬭鏄庝簡(jiǎn)鍒涘緩涓涓孩鑹茶儗鏅璇濈殑姝ラ銆?br /><br />棣栧厛錛岀粰瀵硅瘽鍩虹被澧炲姞涓浜烘垚鍛樺彉閲?br />CBursh :class CMyFormView : public CFormView<br />{<br />鈥?br /><br />private :<br />CBrush m_ brush // background brush<br /><br />鈥?br />}<br /><br />鍏舵錛?鍦ㄧ被鐨勬瀯閫犲嚱鏁頒腑灝嗗埛瀛愬垵濮嬪寲涓烘墍闇瑕佺殑鑳屾櫙棰滆壊銆?br />CMyFormView : : CMyFormView ( )<br />{<br />// Initialize background brush .<br />m_brush .CreateSolidBrush (RGB ( 0, 0, 255) )<br />}<br /><br />鏈鍚庯紝浣跨敤ClassWizard澶勭悊WM_CTLCOLOR娑堟伅騫惰繑鍥炰竴涓敤鏉ョ粯鐢誨璇濊儗鏅殑鍒峰瓙鍙ユ焺銆傛敞鎰忥細(xì)鐢變簬褰撻噸鐢誨璇濇帶浠舵椂涔熻璋冪敤璇ュ嚱鏁幫紝鎵浠ヨ媯(gè)嫻媙CtlColor鍙傞噺銆?br />HBRUSH CMyFormView : : OnCtlColor (CDC* pDC , CWnd*pWnd , UINT nCtlColor<br />)<br /><br />{<br />// Determine if drawing a dialog box . If we are, return +handle to<br />//our own background brush . Otherwise let windows handle it .<br />if (nCtlColor = = CTLCOLOR _ DLG )<br />return (HBRUSH) m_brush.GetSafeHandle ( )<br />return CFormView : : OnCtlColor (pDC, pWnd , nCtlColor<br />)<br />}</p><p></p><p>錛?9錛?濡備綍鏀瑰彉鎺т歡鐨勫瓧浣?br />鐢變簬鎺т歡鏄篃鏄獥鍙o紝鐢ㄦ埛鍙互璋冪敤CWnd: : SetFont鎸囧畾鏂板瓧浣撱傝鍑芥暟鐢ㄤ竴涓狢font鎸囬拡錛岃淇濊瘉鍦ㄦ帶浠舵挙娑堜箣鍓嶄笉鑳芥挙娑堝瓧浣撳璞°備笅渚嬪皢涓嬪帇鎸夐挳鐨勫瓧浣撴敼涓?鐐笰rial瀛椾綋錛?br />//Declare font object in class declaration (.H file ).<br />private : Cfont m_font<br />// Set font in class implementation (.Cpp file ). Note m_wndButton is a<br />//member variable added by ClassWizard.DDX routines hook the member<br />//variable to a dialog button contrlo.<br />BOOL CSampleDialog : : OnInitDialog ( )<br />{<br />鈥?br />//Create an 8-point Arial font<br />m_font . CreateFont (MulDiv (8 , -pDC<br />鈥?gt; GetDeviceCaps(LOGPIXELSY) ,72). 0 , 0 , 0 , FW_NORMAL , 0 , 0,0, ANSI_CHARSER, OUT_STROKE_PRECIS ,<br /><br />CLIP_STROKE _PRECIS , DRAFT _QUALITY<br />VARIABLE_PITCH 锝淔F_SWISS, _T("Arial") )<br /><br />//Set font for push button .<br />m_wndButton . SetFont (&m _font )<br /><br />鈥?br />}</p><p>錛?0錛?濡備綍鍦∣LE鎺т歡涓嬌鐢∣LE_COLOR鏁版嵁綾誨瀷<br />璇稿COleControl : : GetFortColor鍜孋OleControl : : GetBackColor絳夊嚱鏁拌繑鍥濷LE _COLOR鏁版嵁綾誨瀷鐨勯鑹詫紝鑰孏DI瀵硅薄璇稿絎斿拰鍒峰瓙浣跨敤鐨勬槸COLORREF鏁版嵁綾誨瀷錛岃皟鐢–OleControl : : TranslateColor鍙互寰堝鏄撳湴灝哋LE_COLOR綾誨瀷鏀逛負(fù)COLORREF綾誨瀷銆備笅渚嬪垱寤轟簡(jiǎn)涓涓綋鍓嶈儗鏅鑹茬殑鍒峰瓙錛?br /><br />void CSampleControl : : OnDraw (CDC* pdc<br />const Crect& rcBounds , const Crect& rcInvalid<br />)<br />{<br />//Create a brush of the cuttent background color.<br />CBrush brushBack (TranslateColor (GetBackColor () ) )<br /><br />//Paint the background using the current backgroundcolor .<br />pdc鈥?gt; FilllRect (rcBounds , &brushBack)<br /><br />//other drawign commands<br /><br />鈥?br />}</p><p>錛?2錛?涓轟粈涔堟棆杞寜閽帶浠剁湅璧鋒潵鍊掕漿<br />闇瑕佽皟鐢–SpinCtrl : : SetRange 璁劇疆鏃嬭漿鎸夐挳鎺т歡鐨勮寖鍥達(dá)紝鏃嬭漿鎸夐挳鎺т歡鐨勭己鐪佷笂闄愪負(fù)0錛岀己鐪佷笅闄愪負(fù)100錛岃繖鎰忓懗鐫澧炲姞鏃舵棆杞寜鎺т歡鐨勫肩敱100鍙樹負(fù)0銆備笅渚嬪皢鏃嬭漿鎸夐挳鎺т歡鐨勮寖鍥磋緗負(fù)0鍒?00錛?br />BOOL CAboutDlg : : OnInitDialog ( )<br />{<br />CDialog : : OnInitDialog ( )<br /><br />//set the lower and upper limit of the spin button<br />m_wndSpin . SetRange ( 0 ,100 )<br /><br />return TRUE<br />}<br /><br />Visual C++ 4.0 Print瀵硅瘽涓殑Copise鏃嬭漿鎸夐挳鎺т歡涔熸湁鍚屾牱鐨勯棶棰橈細(xì)鎸変笅Up鎸夐挳鏃舵嫹璐濈殑鏁扮洰鍑忓皯錛岃屾寜涓婦own 鎸夐挳鏃舵嫹璐濈殑鏁扮洰澧炲姞銆?/p><p>錛?3錛?涓轟粈涔堟棆杞寜閽帶浠朵笉鑳借嚜鍔ㄥ湴鏇存柊瀹冧笅闈㈢殑緙栬緫鎺т歡<br />濡傛灉浣跨敤鏃嬭漿鎸夐挳鐨刟utu buddy鐗規(guī)э紝 鍒欏繀欏諱繚璇佸湪瀵硅瘽鐨勬爣璁伴『搴忎腑buddy紿楀彛浼樺厛浜庢棆杞寜閽帶浠躲備粠Layout鑿滃崟涓夋嫨Tab Order鑿滃崟欏癸紙鎴栬呮寜涓婥rtl+D錛夊彲浠ヨ緗璇濈殑鏍囩欏哄簭銆?/p><p>錛?4錛?濡備綍鐢ㄤ綅鍥炬樉紺轟笅鍘嬫寜閽?br />Windows 95鎸夐挳鏈夊嚑澶勬柊鐨勫垱寤洪鏍鹼紝灝ゅ叾鏄疊S_BITMAP鍜孊S_ICON錛岃鎯沖叿鏈変綅鍥炬寜閽紝鍒涘緩鎸夐挳鍜岃皟鐢–Button : : SetBitmap鎴朇Button : : SetIcon鏃惰鎸囧畾BS_BITMAP鎴朆S_ICON椋庢牸銆?br /><br />棣栧厛錛岃緗寜閽殑鍥炬爣灞炴с傜劧鍚庯紝褰撳璇濆垵濮嬪寲鏃惰皟鐢–Button: : SetIcon銆傛敞鎰忥細(xì)涓嬩緥鐢ㄥ浘鏍囦唬鏇夸綅鍥撅紝浣跨敤浣嶅浘鏃惰灝忓績(jī)錛屽洜涓轟笉鐭ラ亾鑳屾櫙鎵鏈夌殑棰滆壊鈥斺斿茍闈炴瘡涓漢閮戒嬌鐢ㄦ祬鐏拌壊銆?br /><br />BOOL CSampleDlg : : OnInitDialog ( )<br />{<br />CDialog : : OnInitDialog ( )<br /><br />//set the images for the push buttons .<br />BOOL CSampleDlg : : OnInitDialog ( )<br />{<br />CDialog : : OnInitDialog ( )<br /><br />//set the images for the push buttons .<br />m_wndButton1.SetIcon (AfxGetApp ( ) 鈥?gt; LoadIcon (IDI _ IPTION1))<br />m_wndButton2.SetIcon (AfxGetApp ( ) 鈥?gt; LoadIcon (IDI _ IPTION2))<br />m_wndButton3.SetIcon (AfxGetApp ( ) 鈥?gt; LoadIcon (IDI _ IPTION3))<br /><br />return TRUE<br />}</p><p></p><p>錛?5錛?濡備綍涓涓垱寤轟笁鎬佷笅鍘嬫寜閽?br />鍙互浣跨敤鏂扮殑BS_PUSHBUTTON 椋庢牸浣嶅拰媯(gè)嫻嬫浠ュ強(qiáng)鎸夐挳鏉ュ垱寤轟竴涓笁鎬佷笅鍘嬫寜閽傝繖寰堝鏄擄紝鍙渶灝嗘嫻嬫鍜屾寜閽嫋鎷夊埌瀵硅瘽涓茍鎸囧畾灞炴ush鈥攍ike鍗沖彲銆備笉鐢ㄤ換浣曢檮鍔犵▼搴忓氨鍙互鎴愪負(fù)涓夋佷笅鍘嬫寜閽?/p><p>錛?6錛?濡備綍鍔ㄦ佸垱寤烘帶浠?br />鍒嗛厤涓涓帶浠跺璞$殑瀹炰緥騫惰皟鐢ㄥ叾Create鎴愬憳鍑芥暟銆傚紑鍙戣呮渶瀹規(guī)槗蹇界暐涓や歡浜嬶細(xì)蹇樿鎸囧畾WS_VISBLE鏍囩鍜屽湪鏍堜腑鍒嗛厤鎺т歡瀵硅薄銆備笅渚嬪姩鎬佸湴鍒涘緩涓涓笅鍘嬫寜閽帶浠訛細(xì)<br />//In class declaration (.H file ).<br />private : CButton* m _pButton<br /><br />//In class implementation (.cpp file ) .<br />m_pButton =new CButton<br />ASSERT_VALID (m_pButton)<br />m_pButton 鈥?gt;Create (_T ("Button Title ") , WS_CHILD 锝淲S_VISIBLE 锝淏S_PUSHBUTTON. Crect ( 0, 0, 100 , 24) , this , IDC _MYBUTTON )</p><p>錛?7錛?濡備綍闄愬埗緙栬緫妗嗕腑鐨勫噯璁稿瓧絎?br />濡傛灉鐢ㄦ埛鍦ㄧ紪杈戞帶浠朵腑鍙厑璁告帴鏀舵暟瀛楋紝鍙互浣跨敤涓涓爣鍑嗙殑緙栬緫鎺т歡騫舵寚瀹氭柊鐨勫垱寤烘爣蹇桬S_NUMBERS,瀹冩槸Windows 95鏂板鍔犵殑鏍囧織錛岃鏍囧織闄愬埗 緙栬緫鎺т歡鍙寜鏀舵暟瀛楀瓧絎︺傚鏋滅敤鎴烽渶瑕佸鏉傜殑緙栬緫鎺т歡錛屽彲浠ヤ嬌鐢∕icrosoft 鐨勫睆钄界紪杈戞帶浠訛紝瀹冩槸涓涓緢鏈夌敤鐨凮LE瀹氬埗鎺т歡銆?br />濡傛灉甯屾湜涓嶄嬌鐢∣LE 瀹氬埗鎺т歡鑷繁澶勭悊瀛楃錛屽彲浠ユ淳鐢熶竴涓狢Edit綾誨茍澶勭悊WM_CHAR娑堟伅錛岀劧鍚庝粠緙栬緫鎺т歡涓繃婊ゅ嚭鐗瑰畾鐨勫瓧絎︺傞鍏堬紝浣跨敤ClassWizard寤虹珛涓涓?CEdit鐨勬淳鐢熺被錛屽叾嬈★紝鍦ㄥ璇濈被涓寚瀹氫竴涓垚鍛樺彉閲忓皢緙栬緫鎺т歡鍒嗙被鍦∣nInitdialog 涓皟鐢–Wnd: : SubclassDlgItem .<br /><br />//In your dialog class declaration (.H file )<br />private : CMyEdit m_wndEdit // Instance of your new edit control .<br /><br />//In you dialog class implementation (.CPP file )<br />BOOL CSampleDialog : : OnInitDialog ( )<br />{<br />鈥?br /><br />//Subclass the edit lontrod .<br />m_wndEdit .SubclassDlgItem (IDC_EDIT,this)<br /><br />鈥?br />}<br /><br />浣跨敤ClassWizard澶勭悊WM_CHAR娑堟伅錛岃綆梟Char鍙傞噺騫跺喅瀹氭墍鎵ц鐨勬搷浣滐紝鐢ㄦ埛鍙互紜畾鏄惁淇敼銆佷紶閫佸瓧絎︺備笅渚嬭鏄庝簡(jiǎn)濡備綍鏄劇ず瀛楁瘝瀛楃錛屽鏋滃瓧絎︽槸瀛楁瘝瀛楃錛屽垯璋冪敤CWnd OnChar錛屽惁鍒欎笉璋冪敤OnChar.<br />//Only display alphabetic dharacters .<br />void CMyEdit : : OnChar (UINT nChar , UINT nRepCnt , UITN nFlags )<br />{<br />//Determine if nChar is an alphabetic character.<br />if (: : IsCharAlpha ( ( TCHAR) nChar ) )<br />CEdit : : OnChar (nChar, nRepCnt , nFlags )<br />}<br /><br />濡傛灉瑕佷慨鏀瑰瓧絎︼紝鍒欎笉鑳戒粎浠呯畝鍗曞湴鐢ㄤ慨鏀硅繃鐨刵Char璋冪敤CEdit: : OnChar錛岀劧鍚嶤Edit: : OnChar璋冪敤CWnd: : Default鑾峰彇鍘熸潵鐨剋Param 鍜宭Param 鐨勫鹼紝榪欐牱鏄笉琛岀殑銆傝淇敼涓涓瓧絎︼紝闇瑕侀鍏堜慨鏀筺Char錛岀劧鍚庣敤淇敼榪囩殑nChar璋冪敤CWnd: : DefWindowProc銆備笅渚嬭鏄庝簡(jiǎn)濡備綍灝嗗瓧絎﹁漿鍙樹負(fù)澶у啓錛?br />//Make all characters uppercase<br />void CMyEdit : : OnChar (UINT nChar , UINT nRepCnt , UINT nFlags )<br />{<br />//Make sure character is uppercase .<br />if (: : IsCharAlpha ( .( TCHAR) nChar)<br />nChar=: : CharUpper(nChar )<br /><br />//Bypass default OnChar processing and directly call<br />//default window proc.<br />DefWindProc (WM_CHAR, nChar , MAKELPARAM (nRepCnt, nFlags ))<br />}</p><p>錛?8錛?濡備綍鏀瑰彉鎺т歡鐨勯鑹?br />鏈変袱縐嶆柟娉曘傚叾涓錛屽彲浠ュ湪鐖剁被涓寚瀹氭帶浠剁殑棰滆壊錛屾垨鑰呭埄鐢∕FC4.0鏂扮殑娑堟伅鍙嶅皠鍦ㄦ帶浠剁被涓寚瀹氶鑹層?褰撴帶浠墮渶瑕侀噸鏂扮潃鑹叉椂錛屽伐浣滄璋冪敤鐖剁獥鍙o紙閫氬父鏄璇濇錛夌殑CWnd: : OnCrtlColor,鍙互鍦ㄧ埗紿楀彛綾諱腑閲嶇疆璇ュ嚱鏁板茍鎸囧畾鎺т歡鐨勬柊鐨勭粯鐢誨睘鎬с備緥濡傦紝涓嬭堪浠g爜灝嗗璇濅腑鐨勬墍鏈夌紪杈戞帶浠舵枃鏈鑹叉敼涓虹孩鑹詫細(xì)<br />HBRUSH CAboutDig : : OnCtlColor (CDC * pDCM , CWnd * pWnd , UINT nCtlColor)<br /><br />{<br />HBRUSH hbr = CDialog : : OnCtlColor (pDC, pWnd , nCtlColor )<br /><br />//Draw red text for all edit controls .<br />if (nCtlColor= = CTLCOLOR_EDIT )<br />pDC 鈥?gt; SetTextColor (RGB (255, 0 , 0 , ) )<br /><br />return hbr<br />}<br /><br />鐒惰岋紝鐢變簬姣忎釜鐖剁獥鍙e繀欏誨鐞嗛氱煡娑堟伅騫舵寚瀹氭瘡涓帶浠剁殑緇樼敾灞炴э紝鎵浠ワ紝榪欑鏂規(guī)硶涓嶆槸瀹屽叏鐨勯潰鍚戝璞$殑鏂規(guī)硶銆傛帶浠跺鐞嗚娑堟伅騫舵寚瀹氱粯鐢誨睘鎬ф洿鍚堟儏鍚堢悊銆傛秷鎭弽灝勫厑璁哥敤鎴瘋繖鏍峰仛銆傞氱煡娑堟伅棣栧厛鍙戦佺粰鐖剁獥鍙o紝濡傛灉鐖剁獥鍙f病鏈夊鐞嗗垯鍙戦佺粰鎺т歡銆傚垱寤轟竴涓畾鍒跺僵鑹插垪琛ㄦ鎺т歡蹇呴』閬靛驚涓嬭堪姝ラ銆?br /><br />棣栧厛錛屼嬌鐢–lassWizard 鍒涘緩涓涓狢ListBox 鐨勬淳鐢熺被騫朵負(fù)璇ョ被娣誨姞涓嬭堪鏁版嵁鎴愬憳銆?br />class CMyListBox publilc CListBox<br />{<br />鈥?br />private<br />COLORREF m_clrFor // foreground color<br />COLORREF m_clrBack //background color<br />Cbrush m_brush //background brush<br />鈥?br />}<br />鍏舵錛屽湪綾葷殑鏋勯犲嚱鏁頒腑錛屽垵濮嬪寲鏁版嵁涓?br />CMyListBox : : CMyListBox ()<br />{<br />//Initialize data members .<br />m_clrFore =RGB (255 , 255 , 0) //yellow text<br />m_clrBack=RGB (0 , 0 , 255) // blue background<br />m_brush . CreateSolidBrush (m _clrBack )<br />}<br /><br />鏈鍚庯紝浣跨敤ClassWizard澶勭悊鍙嶅皠鐨刉M_CTLCOLOR(=WM_CTLCOLOR)娑堟伅騫舵寚瀹氭柊鐨勭粯鐢誨睘鎬с?br />HBRUSH CMyListBox : : CtlColor (CDC* pDC, UINT nCtlColor )<br />{<br />pDC鈥?gt;SetTextColor (m_clrFore)<br />pDC鈥?gt;SetBkColor (m_clrBack)<br /><br />return (HBRUSH) m_brush.GetSafeHandle ()<br />}<br />鐜板湪錛屾帶浠跺彲浠ヨ嚜宸卞喅瀹氬浣曠粯鐢伙紝涓庣埗紿楀彛鏃犲叧銆?/p><p>錛?9錛?褰撳悜鍒楄〃妗嗕腑娣誨姞澶氫釜欏規(guī)椂濡備綍闃叉闂儊<br />璋冪敤CWnd::SetRedraw 娓呴櫎閲嶇敾鏍囧織鍙互紱佹CListBox錛堟垨鑰呯獥鍙o級(jí)閲嶇敾銆傚綋鍚戝垪琛ㄦ娣誨姞鍑犱釜欏規(guī)椂錛岀敤鎴峰彲浠ユ竻闄ら噸鐢繪爣蹇楋紝鐒跺悗娣誨姞欏癸紝鏈鍚庢仮澶嶉噸鐢繪爣蹇椼備負(fù)紜繚閲嶇敾鍒楄〃妗嗙殑鏂伴」錛岃皟鐢⊿etRedraw (TRUE) 涔嬪悗璋冪敤CWnd::Invalidate銆?br />//Disable redrawing.<br />pListBox->SetRedraw (FALSE)<br /><br />//Fill in the list box gere<br />//Enable drwing and make sure list box is redrawn.<br />pListBox->SetRedraw (TRUE)<br />pListBox->Invalidate ()</p><p>錛?0錛?濡備綍鍚戠紪杈戞帶浠朵腑娣誨姞鏂囨湰<br />鐢變簬娌℃湁CEdit:: AppendText鍑芥暟錛岀敤鎴峰彧濂借嚜宸卞仛姝ら」宸ヤ綔銆傝皟鐢–Edit:: SetSel縐誨姩鍒扮紪杈戞帶浠舵湯灝撅紝鐒跺悗璋冪敤CEdit:: ReplaceSel娣誨姞鏂囨湰銆備笅渚嬫槸AppendText 鐨勪竴縐嶅疄鐜版柟娉曪細(xì)<br /><br />void CMyEdit:: AppendText (LPCSTR pText)<br />{<br />int nLen=GetWindowTextLength ()<br />SetFocus ()<br />SetSel (nLen, nLen)<br /><br />ReplaceSel (pText)<br />}</p><p>錛?1錛?濡備綍璁塊棶棰勫畾涔夌殑GDI瀵硅薄<br />鍙互閫氳繃璋冪敤CDC:: SlectStockObject浣跨敤Windows鐨勫嚑涓瀹氫箟鐨勫璞★紝璇稿鍒峰瓙銆佺瑪浠ュ強(qiáng)瀛椾綋銆備笅渚嬩嬌鐢ㄤ簡(jiǎn)Windows棰勫畾涔夌殑絎斿拰鍒峰瓙GDI瀵硅薄鍦ㄨ紿椾腑鐢諱竴涓き鍦嗐?br />//Draw ellipse using stock black pen and gray brush.<br />void CSampleView:: OnDraw (CDC* pDC)<br />{<br />//Determine size of view.<br />CRect rcView<br />GetClientRect (rcView)<br /><br />//Use stock black pen and stock gray brush to draw ellipse.<br />pDC->SelectStockObject (BLACK_PEN)<br />pDC->SelectStockObject (GRAY_BRUSH)<br />//Draw the ellipse.<br />pDC->Ellipse (reView)<br />}<br /><br />涔熷彲浠ヨ皟鐢ㄦ柊鐨凷DK鍑芥暟GetSysColorBrush鑾峰彇涓涓郴緇熼鑹插埛瀛愶紝涓嬩緥鐢ㄨ儗鏅壊鍦ㄨ紿椾腑鐢諱竴涓き鍦嗭細(xì)<br />void CsampleView:: OnDraw (CDC* pDC)<br />{<br />//Determine size of view.<br />CRect rcView<br />GetClientRect (rcView)<br /><br />//Use background color for tooltips brush.<br />CBrush * pOrgBrush=pDC->SelectObject ( CBrush ::FromHandle( ::GetSysColorBrush (COLOR_INFOBK)))<br /><br />//Draw the ellipse.<br />pDC->Ellipse (rcView)<br /><br />//Restore original brush.<br />pDC->SelectObject (pOrgBrush)<br />}</p><p>錛?2錛?濡備綍鑾峰彇GDI瀵硅薄鐨勫睘鎬т俊鎭?br />鍙互璋冪敤GDIObject:: GetObject銆傝繖涓嚱鏁板皢鎸囧畾鍥捐〃璁懼鐨勬秷鎭啓鍏ュ埌緙撳啿鍖恒備笅渚嬪垱寤轟簡(jiǎn)鍑犱釜鏈夌敤鐨勮緟鍔╁嚱鏁般?br />//Determine if font is bold.<br />BOOL IsFontBold (const CFont&font)<br />{<br />LOGFONT stFont<br />font.GetObject (sizeof (LOGFONT), &stFont)<br />return (stFont.lfBold)? TRUE: FALSE<br />}<br /><br />//Return the size of a bitmap.<br />CSize GetBitmapSize (const CBitmap&bitmap)<br />{<br />BITMAP stBitmap<br />bitmap.GetObject (sizeof (BITMAP), &stBitmap)<br />return CSize (stBitmap.bmWidth, stBitmap.bmHeight)<br />}<br /><br />//Create a pen with the same color as a brush.<br />BOOL CreatePenFromBrush (Cpen&pen, cost Cbrush&brush)<br />{<br />LOGBRUSH stBrush<br />brush.Getobject (sizeof (LOGBRUSH), &stBrush)<br />return pen. Createpen (PS_SOLID, 0, stBrush.ibColor)<br />}</p><p>錛?3錛?濡備綍瀹炵幇涓涓鐨尯鐭╁艦<br />CRectTracker鏄竴涓緢鏈夌敤鐨勭被錛屽彲浠ラ氳繃璋冪敤CRectTracker::TrackRubberBand 鍝嶅簲WM_LBUTTONDOWN娑堟伅鏉ュ垱寤轟竴涓鐨尯鐭╁艦銆?br />涓嬩緥琛ㄦ槑浣跨敤CRectTracker縐誨姩鍜岄噸緗紿椾腑鐨勮摑鑹叉き鍦嗙殑澶у皬鏄緢瀹規(guī)槗鐨勪簨鎯呫?br /><br />棣栧厛錛屽湪鏂囦歡妗d腑澹版槑涓涓狢RectTracker鏁版嵁鎴愬憳錛?br />class CSampleView : Public CView<br />{<br />鈥?br />public :<br />CrectTracker m_tracker<br />鈥?br />}<br /><br />鍏舵錛屽湪鏂囨。綾葷殑鏋勯犲嚱鏁頒腑鍒濆鍖朇RectTracker 瀵硅薄錛?br />CSampleDoc:: CSampleDOC ()<br />{<br />//Initialize tracker position, size and style.<br />m_tracker.m_rect.SetRect (0, 0, 10, 10)<br />m_tracker.m_nStyle=CRectTracker:: resizeInside | CRectTracker ::dottedLine<br />}<br /><br />鐒跺悗錛屽湪OnDraw鍑芥暟涓敾妞渾鍜岃釜榪圭煩褰細(xì)<br />void CSampleView:: OnDraw (CDC* pDC)<br />{<br />CSampleDoc* pDoc=GetDocument ()<br />ASSERT_VALID (pDoc)<br /><br />//Select blue brush into device context.<br />CBrush brush (RGB (0, 0, 255))<br />CBrush* pOldBrush=pDC->SelectObject (&brush)<br /><br />//draw ellipse in tracking rectangle.<br />Crect rcEllipse<br />pDoc->m_tracker.GetTrueRect (rcEllipse)<br />pDC->Ellipse (rcEllipse)<br /><br />//Draw tracking rectangle.<br />pDoc->m_tracker.Draw (pDC)<br />//Select blue brush out of device context.<br />pDC->Selectobject (pOldBrush)<br />}<br /><br />鏈鍚庯紝浣跨敤ClassWizard澶勭悊WM_LBUTTONDOWN娑堟伅錛屽茍澧炲姞涓嬭堪浠g爜銆傝孌典唬鐮佹牴鎹紶鏍囧嚮閿儏鍐靛彲浠ユ嫋鏀俱佺Щ鍔ㄦ垨鑰呴噸緗き鍦嗙殑澶у皬銆?br />void CSampleView::OnLButtonDown (UINT nFlags, CPoint point)<br />{<br />//Get pointer to document.<br />CSampleDoc* pDoc=GetDocument ()<br />ASSERT_VALID (pDoc)<br /><br />//If clicked on ellipse, drag or resize it.Otherwise create a<br />//rubber-band rectangle nd create a new ellipse.<br />BOOL bResult=pDoc->m_tracker.HitTest (point)!= CRectTracker::hitNothing<br /><br />//Tracker rectangle changed so update views.<br />if (bResult)<br />{<br />pDoc->m_tracker.Track (this,point,TRue)<br />pDoc->SetModifiedFlag ()<br />pDoc->UpdateAllViews (NULL)<br />}<br /><br />else<br />pDoc->m-tracker.TrackRubberBand(this,point,TRUE)<br />CView:: onLButtonDown (nFlags,point)<br />}</p><p>錛?4錛?濡備綍鏇存柊緲昏漿鑳屾櫙棰滆壊鐨勬枃鏈?br />璋冪敤CDC:: SetBkmode騫朵紶閫丱PAQUE鐢ㄥ綋鍓嶇殑鑳屾櫙棰滆壊濉厖鑳屾櫙錛屾垨鑰呰皟鐢–DC::SetBkMode騫朵紶閫乀RANSPAARENT浣胯儗鏅繚鎸佷笉鍙橈紝榪欎袱縐嶆柟娉曢兘鍙互璁劇疆鑳屾櫙妯″紡銆備笅渚嬭緗儗鏅ā寮忎負(fù)TRANSPARENT錛屽彲浠ヤ袱嬈℃洿鏂頒覆錛岀敤鑺辮壊甯﹂粦闃村獎(jiǎng)鏇存柊鏂囨湰銆傞粦鑹蹭覆鍦ㄧ孩鑹蹭覆涔嬪悗錛屼絾鐢變簬璁劇疆浜?jiǎn)鑳屾櫙妯″紡浠嶇劧鍙銆?br /><br />void CSampleView:: OnDraw (CDC* pDC)<br />{<br />//Determint size of view.<br />CRect rcView<br />GetClientRect (rcVieew)<br /><br />//Create sample string to display.<br />CString str (_T ("Awesome Shadow Text錛庯紟錛?))<br />//Set the background mode to transparent.<br />pDC->SetBKMode (TRANSPARENT)<br /><br />//Draw black shadow text.<br />rcView.OffsetRect (1, 1)<br />pDc->SetTextColor (RGB (0, 0, 0))<br />pDC->DrawText (str, str.GetLength (), rcView, DT_SINGLELINE | DT_CENTER | DT_VCENTER)<br /><br />//Draw red text.<br />rcView.OffsetRect (-1,-1)<br />pDc->SetTextColor (RGB (255, 0, 0))<br />pDC->DrawText (str, str.GetLength (), rcView, DT_SINGLELINE | DT_CENTER | DT_VCENTER)<br /><br />}</p><p>錛?5錛?濡備綍鍒涘緩涓涓叿鏈夌壒瀹氱偣澶у皬鐨勫瓧浣?br />鍙互鎸囧畾瀛椾綋閫昏緫鍗曚綅鐨勫ぇ灝忥紝浣嗘湁鏃舵寚瀹氬瓧浣撶殑鐐圭殑澶у皬鍙兘浼?xì)鏇存柟渚夸竴浜涖傚彲浠ュ涓嬪皢瀛椾綋鐨勭偣杞崲涓哄瓧浣撶殑楂樺害錛?br /><br />int nHeigth=mulDiv (nPointSize, -dc.GetDeviceCaps (LOGPIXELSY), 72)<br />涓嬩緥鍒涘緩浜?jiǎn)涓涓?鐐圭殑Apial瀛椾綋錛?br />鈥?br />CClientDC dc (AqfxGetMainWnd ())<br /><br />m_font. CreateFont (MulDiv (8, -dc.GetDeviceCaps (LOGPIXELSY), 72), 0, 0, 0, FW_NORMAL, 0, 0, 0, ANSI_CHARSET, OUT_STROKE_PRECIS, CLIP_STROKE_PRECIS, DRAFT_QUALITY, VARIABLE_PITCH | FF-SWISS,_T("Arial"))</p><p>錛?6錛?濡備綍璁$畻涓涓覆鐨勫ぇ灝?br />鍑芥暟CDC:: Det text Extent 鏍規(guī)嵁褰撳墠閫夋嫨鐨勫瓧浣撹綆椾竴涓覆鐨勯珮搴﹀拰瀹藉害銆傚鏋滀嬌鐢ㄧ殑涓嶆槸緋葷粺瀛椾綋鑰屾槸鍏朵粬瀛椾綋錛屽垯鍦ㄨ皟鐢℅etTextExtent涔嬪墠灝嗗瓧浣撻夎繘璁懼涓婁笅鏂囦腑鏄緢閲嶈鐨勶紝鍚﹀垯璁$畻楂樺害鍜屽搴︽椂灝嗕緷鎹郴緇熷瓧浣擄紝鐢辨寰楀嚭鐨勭粨鏋滃綋鐒舵槸涓嶆紜殑銆備笅榪版牱鏉跨▼搴忓綋鏀瑰彉涓嬪帇鎸夐挳鐨勬爣棰樻椂鍔ㄦ佽皟鏁存寜閽殑澶у皬錛屾寜閽殑澶у皬鐢辨寜閽殑瀛椾綋鍜屾爣棰樼殑澶у皬鑰屽畾銆傚搷搴旀秷鎭疻M_SETTEXT鏃惰皟鐢∣nSetText錛岃娑堟伅浣跨敤ON_MESSAE瀹忔寚浠ゅ畾涔夌殑鐢ㄦ埛鑷畾涔夋秷鎭?br /><br />LRESULT CMyButton:: OnSettext (WPARAM wParam, LPARAM lParam)<br />{<br />//Pass message to window procedure.<br />LRESULT bResult=CallWindowProc (*GetSuperWndProcAddr(), m_hWnd, GetCurrentMessage() ->message,wParam,lParam)<br />//Get title of push button.<br />CString strTitle<br />GetWindowText (strTitle)<br /><br />//Select current font into device context.<br />CDC* pDC=GetDc ()<br />CFont*pFont=GetFont ()<br />CFont*pOldFont=pDC->SelectObject (pFont)<br /><br />//Calculate size of title.<br />CSize size=pDC->GetTextExent (strTitle,strTitle.GetLength())<br /><br />//Adjust the button's size based on its title.<br />//Add a 5-pixel border around the button.<br />SetWindowPos (NULL, 0, 0, size.cx+10, size.cy+10, SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE)<br />//Clean up.<br />pDC->SelectFont (pOldFont)<br />ReleaseDC (pDC)<br /><br />return bResult<br />}<br /></p><p>錛?7錛?濡備綍鏄劇ず鏃嬭漿鏂囨湰<br />鍙鐢ㄦ埛浣跨敤TrueType鎴栬匞DI絎旀垨瀛椾綋灝卞彲浠ユ樉紺烘棆杞枃鏈?鏈変簺紜歡璁懼涔熸敮鎸佹棆杞厜鏍呭瓧浣擄級(jí)銆侺OGFONT緇撴瀯涓殑ifEscapement鎴愬憳鎸囧畾浜?jiǎn)鏂囨湰琛屽拰x杞寸殑瑙掑害錛岃搴︾殑鍗曚綅鏄崄鍒嗕箣涓搴﹁屼笉鏄害錛屼緥濡傦紝ifEscapement涓?50琛ㄧず瀛椾綋鏃嬭漿45搴︺備負(fù)紜繚鎵鏈夌殑瀛椾綋娌垮潗鏍囩郴緇熺殑鍚屼竴鏂瑰悜鏃嬭漿錛屼竴瀹氳璁劇疆ifEscapement鎴愬憳鐨凜LIP_LH_ANGLES浣嶏紝鍚﹀垯錛屾湁浜涘瓧浣撳彲鑳藉弽鍚戞棆杞備笅渚嬩嬌鐢ㄤ簡(jiǎn)14鐐笰rial瀛椾綋姣忛棿闅?5搴︾敾涓涓覆銆?br />void CSampleView:: OnDraw (CDC* pDC)<br />{<br />//Determine the size of the window.<br />CRect rcClient<br />GetClientRect (rcClient)<br /><br />//Create sample string.<br />CString str (_T ("Wheeee錛庯紟錛嶪 am rotating!"))<br />//Draw transparent, red text.<br />pDC->SetBkMode (TRANSPARENT)<br />pDC->SetTextColor (RGB (255,0,0))<br />CFont font<br />//font object<br />LOGFONT stFont //font definition<br />//Set font attributes that will not change.<br />memset (&stFont, 0, sizeof (LOGFONT))<br />stFont.ifheight=MulDiv (14, -pDC->GetDeviceCaps(LOGPIXELSY), 72)<br />stFont.ifWeight=FW_NORMAL<br />stFont.ifClipPrecision=LCIP_LH_ANGLES<br />strcpy (stFont.lfFaceName, "Arial")<br /><br />//Draw text at 15degree intervals.<br />for (int nAngle=0 nAngle<3600 nAngle+=150)<br />{<br />//Specify new angle.<br />stFont.lfEscapement=nAngle<br /><br />//Create and select font into dc.<br />font.CreateFontIndirect(&stfont)<br />CFont* pOldFont=pDC ->SelectObject(&font)<br /><br />//Draw the text.<br />pDC->SelectObject(pOldFont)<br />font.DelectObjext()<br />}<br />}</p><p></p><p>錛?8錛?濡備綍姝g‘鏄劇ず鍖呭惈鏍囩瀛楃鐨勪覆<br />璋冪敤GDI鏂囨湰緇樼敾鍑芥暟鏃墮渶瑕佸睍寮鏍囩瀛楃錛岃繖鍙互閫氳繃璋冪敤CDC:: TabbedTextOut鎴栬匔DC:: DrawText騫舵寚瀹欴T_EXPANDTABS鏍囧織鏉ュ畬鎴愩俆abbedTextOut鍑芥暟鍏佽鎸囧畾鏍囩浣嶇殑鏁扮粍錛屼笅渚嬫寚瀹氭瘡20璁懼鍗曚綅灞曞紑涓涓爣絳撅細(xì)<br /><br />void CSampleView:: OnDraw (CDC* pDC)<br />{<br />CTestDoc* pDoc=GetDocument ()<br />ASSERT_VALID (pDoC)<br /><br />CString str<br />str.Format (_T ("Cathy\tNorman\tOliver"))<br />int nTabStop=20 //tabs are every 20 pixels<br />pDC->TabbedtextOut (10, 10, str, 1, &nTabStop, 10)<br />}</p><p>錛?9錛?濡備綍蹇熷湴鏍煎紡鍖栦竴涓狢String瀵硅薄<br />璋冪敤CString:: Format錛岃鍑芥暟鍜宲rintf鍑芥暟鍏鋒湁鐩稿悓鐨勫弬鏁幫紝涓嬩緥璇存槑浜?jiǎn)濡備綍鋴社敤Format鍑芥暟錛?br /><br />//Get size of window.<br />CRect rcWindow<br />GetWindowRect (rcWindow)<br />//Format message string.<br />CString strMessage<br />strMessage.Format (_T ("Window Size (%d, %d)"),<br /><br />rcWindow.Width (), rcWindow.Height ())<br /><br />//Display the message.<br />MessageBox (strmessage)</p><p>錛?0錛?涓插お闀挎椂濡備綍鍦ㄥ叾鏈熬鏄劇ず涓涓渷鐣ュ彿<br />璋冪敤CDC:: DrawText騫舵寚瀹欴T_END_ELLIPSIS鏍囧織錛岃繖鏍峰氨鍙互鐢ㄥ皬鐣ュ彿鍙栦唬涓叉湯灝劇殑瀛楃浣垮叾閫傚悎浜庢寚瀹氱殑杈圭晫鐭╁艦銆傚鏋滆鏄劇ず璺緞淇℃伅錛屾寚瀹欴T_END_ELLIPSIS鏍囧織騫剁渷鐣ュ彿鍙栦唬涓蹭腑闂寸殑瀛楃銆?br /><br />void CSampleView:: OnDraw (CDC* pDC)<br />{<br />CTestDoc* pDoc=GetDocument ()<br />ASSERT_VALID (pDoc)<br /><br />//Add ellpsis to end of string if it does not fit<br />pDC->Drawtext (CString ("This is a long string"), CRect (10, 10, 80, 30), DT_LEFT | DT_END_ELLIPSIS)<br /><br />//Add ellpsis to middle of string if it does not fit<br />pDC->DrawText (AfxgetApp () ->m_pszhelpfilePath, CRect (10, 40, 200, 60), DT_LEFT | DT_PATH_ELLIPSIS)<br />}<br /></p><p>錛?1錛?涓轟粈涔堝嵆浣胯皟鐢‥nableMenuItem鑿滃崟欏瑰悗錛岃彍鍗曢」榪樺浜庣姝㈢姸鎬?br />闇瑕佸皢CFrameWnd:: m_bAutomenuEnable璁劇疆涓篎ALSE錛屽鏋滆鏁版嵁鎴愬憳涓篢RUE錛堢己鐪佸鹼級(jí)錛屽伐浣滄灝嗚嚜鍔ㄥ湴紱佹娌℃湁ON_UPDATE_COMMAND_UI鎴栬匫N_COMMAND鐨勮彍鍗曢」銆?br /><br />//Disable MFC from automatically disabling menu items.<br />m_bAuoMenuEnable=FALSE<br />//Now enable the menu item.<br />CMenu* pMenu=GetMenu ()<br />ASSERT_VALID (pMenu)<br /><br />pMenu->EnableMenuItem (ID_MENU_ITEM,MF_BYCOMMAND | MF_ENABLED)</p><p></p><p>錛?2錛?濡備綍緇欑郴緇熻彍鍗曟坊鍔犱竴涓彍鍗曢」<br />緇欑郴緇熻彍鍗曟坊鍔犱竴涓彍鍗曢」闇瑕佽繘琛屼笅榪頒笁涓楠わ細(xì)<br />棣栧厛錛屼嬌鐢≧esource Symbols瀵硅瘽錛堝湪View鑿滃崟涓夋嫨Resource Symbols錛庯紟錛庡彲浠ユ樉紺鴻瀵硅瘽錛夊畾涔夎彍鍗曢」ID錛岃ID搴斿ぇ浜?x0F鑰屽皬浜?xF000錛?br />鍏舵錛岃皟鐢–Wnd::GetSystemMenu鑾峰彇緋葷粺鑿滃崟鐨勬寚閽堝茍璋冪敤CWnd:: Appendmenu灝嗚彍鍗曢」娣誨姞鍒拌彍鍗曚腑銆備笅渚嬬粰緋葷粺鑿滃崟娣誨姞涓や釜鏂扮殑<br />int CMainFrame:: OnCreate (LPCREATESTRUCT lpCreateStruct)<br />{<br />鈥?br />//Make sure system menu item is in the right range.<br />ASSERT (IDM_MYSYSITEM &0xFFF0)==IDM_MYSYSITEM)<br />ASSERT (IDM-MYSYSITEM<0xF000)<br /><br />//Get pointer to system menu.<br />CMenu* pSysmenu=GetSystemmenu (FALSE)<br />ASSERT_VALID (pSysMenu)<br />//Add a separator and our menu item to system menu.<br />CString StrMenuItem (_T ("New menu item"))<br />pSysMenu->Appendmenu (MF_SEPARATOR)<br />pSysMenu->AppendMenu (MF_STRING, IDM_MYSYSITEM, strMenuitem)<br /><br />鈥?br />}<br /><br />鐜板湪錛岄夋嫨緋葷粺鑿滃崟欏規(guī)椂鐢ㄦ埛搴旇繘琛屾嫻嬨備嬌鐢–lassWizard澶勭悊WM_SYSCOMMAND娑堟伅騫舵嫻嬬敤鎴瘋彍鍗曠殑nID鍙傛暟錛?br />void CMainFrame:: OnSysCommand (UINT nID,LPARAM lParam)<br />{<br />//Determine if our system menu item was selected.<br />if ( (nID & 0xFFF0)==IDM_MYSYSITEM)<br />{<br />//TODO-process system menu item<br />}<br /><br />else<br />CMDIFrameWnd ::OnSysCommand (nID, lParam)<br />}<br />鏈鍚庯紝涓涓璁¤壇濂界殑UI搴旂敤紼嬪簭搴斿綋鍦ㄧ郴緇熻彍鍗曢」鍔犱寒鏃跺湪鐘舵佹潯鏄劇ず涓涓府鍔╀俊鎭紝榪欏彲浠ラ氳繃澧炲姞涓涓寘鍚郴緇熻彍鍗曞熀ID鐨勪覆琛ㄧ殑鍏ュ彛鏉ュ疄鐜般?/p><p>錛?3錛?濡備綍紜畾欏跺眰鑿滃崟鎵鍗犳嵁鐨勮彍鍗曡鏁?br />榪欏彲浠ラ氳繃綆鍗曠殑鍑忔硶鍜岄櫎娉曟潵瀹炵幇銆傞鍏堬紝鐢ㄦ埛闇瑕佽綆椾富妗嗙獥鍙g殑楂樺害鍜屽鎴峰尯錛涘叾嬈★紝浠庝富妗嗙獥鍙g殑楂樺害涓噺鍘誨鎴峰尯銆佹杈圭晫浠ュ強(qiáng)鏍囬鐨勯珮搴︼紱鏈鍚庯紝闄や互鑿滃崟鏍忕殑楂樺害銆備笅渚嬫垚鍛樺嚱鏁版槸涓涓綆椾富妗嗚彍鍗曟墍鍗犳嵁鐨勮鏁扮殑浠g爜瀹炵幇銆?br /><br />int CMainFrame:: GetMenuRows ()<br />{<br />CRect rcFrame,rcClient<br />GetWindowRect (rcFrame)<br />GetClientRect (rcClient)<br />return (rcFrame.Height () -rcClient.Height () - :: GetSystemMetrics(SM_CYCAPTION) - (:: getSystemMetrics(SM_CYFRAME) *2)) / :: GetSystemMetrics(SM_CYMENU)<br />}</p><p>錛?4錛?鍦ㄧ敤鎴風(fēng)幆澧冧腑濡備綍紜畾緋葷粺鏄劇ず鍏冪礌鐨勯鑹?br />璋冪敤SDK鍑芥暟GetSysColor鍙互鑾峰彇涓涓壒瀹氭樉紺哄厓绱犵殑棰滆壊銆備笅渚嬭鏄庝簡(jiǎn)濡備綍鍦∕FC鍑芥暟CMainFrameWnd:: OnNcPaint涓皟鐢ㄨ鍑芥暟璁劇疆紿楀彛鏍囬棰滆壊銆?br /><br />void CMiniFrameWnd:: OnNcPaint ()<br />{<br />鈥?br />dc.SetTextColor (:: GetSysColor (m_bActive ? COLOR_CAPTIONTEXT : COLOR_INACTIVECAPTIONTEXT))<br />鈥?/p><p></p><p>錛?5錛?濡備綍鏌ヨ鍜岃緗郴緇熷弬鏁?br />鍦╓indows 3.1 SDK涓粙緇嶈繃SDK鍑芥暟SystemParametersInfo錛岃皟鐢ㄨ鍑芥暟鍙互鏌ヨ鍜岃緗郴緇熷弬鏁幫紝璇稿鎸夐敭鐨勯噸澶嶉熺巼璁劇疆銆侀紶鏍囧弻鍑誨歡榪熸椂闂淬佸浘鏍囧瓧浣撲互鍙?qiáng)妗岄潰瑕嗙洊浣嶅泟…壗{夈?br /><br />//Create a font that is used for icon titles.<br />LOGFONT stFont<br />鈭? SystemParametersInfo (SPIF_GETICONTITLELOGFONT, sizeof (LOGFONT), &stFont, SPIF_SENDWININICHANGE)<br />m_font.CreateFontIndirect (&stFont)<br /><br />//Change the wallpaper to leaves.bmp.<br />鈭?: SystemParametersInfo (SPI_SETDESKWALLPAPER, 0, _T (" forest.bmp"), SPIF_UPDATEINIFILE)</p><p></p><p>錛?6錛?濡備綍紜畾褰撳墠灞忓箷鍒嗚鯨鐜?br />璋冪敤SDK鍑芥暟GetSystemMetrics錛岃鍑芥暟鍙互媯(gè)绱㈡湁鍏硍indows鏄劇ず淇℃伅錛岃濡傛爣棰樺ぇ灝忋佽竟鐣屽ぇ灝忎互鍙?qiáng)婊氬姩鏉″ぇ灏徑{夌瓑銆?br /><br />//Initialize CSize object with screen size.<br />CSize sizeScreen (GetSystemMetrics (SM_CXSCREEN),<br />GetSystemMetrics (SM_CYSCREEN))</p><p></p><p>錛?7錛?濡備綍浣跨敤涓涓瀹氫箟鐨刉indows鍏夋爣<br />璋冪敤CWinApp:: LoadStandardCursor騫朵紶閫佸厜鏍囨爣璇嗙銆?br />BOOL CSampleDialog:: OnSetCursor (CWnd* pWnd,<br />UINT nHitTest, UINT<br />message)<br />{<br />//Display wait cursor if busy.<br />if (m_bBusy)<br />{<br />SetCursor (AfxGetApp () ->LoadStandardCursor (IDC_WAIT))<br />return TRUE<br />}<br /><br />return CDialog:: OnSetCursor (pWnd. nHitTest,message)<br />}</p><p>錛?8錛?濡備綍媯(gè)绱㈠師鍏堢殑Task Manager搴旂敤紼嬪簭浣跨敤鐨勪換鍔″垪琛?br />鍘熷厛鐨凾ask Manager搴旂敤紼嬪簭鏄劇ず欏跺眰紿楀彛鐨勫垪琛ㄣ備負(fù)浜?jiǎn)鏄窘C鴻鍒楄〃錛岀獥鍙e繀欏誨彲瑙併佸寘鍚竴涓爣棰樹互鍙?qiáng)涓嶈兘琚叾浠柦H楀彛鎷ユ湁銆傝皟鐢–Wnd:: GetWindow鍙互媯(gè)绱㈤《灞傜獥鍙g殑鍒楄〃錛岃皟鐢↖sWindowVisible銆丟etWindowTextLength浠ュ強(qiáng)GetOwner鍙互紜畾紿楀彛鏄惁搴旇鍦ㄥ垪琛ㄤ腑銆備笅渚嬪皢鎶奣askManager紿楀彛鐨勬爣棰樺~鍏呭埌鍒楄〃涓?br /><br />void GetTadkList (CListBox&list)<br />{<br />CString strCaption<br />//Caption of window.<br /><br />list.ResetContent ()<br />//Clear list box.<br /><br />//Get first Window in window list.<br />ASSERT_VALID (AfxGetMainWnd ())<br />CWnd* pWnd=AfxGetMainWnd () ->GetWindow (GW_HWNDFIRST)<br /><br />//Walk window list.<br />while (pWnd)<br />{<br />// I window visible, has a caption, and does not have an owner?<br />if (pWnd ->IsWindowVisible()<br />&& pWnd ->GetWindowTextLength ()<br />&&! pWnd ->GetOwner ())<br />{<br /><br />//Add caption o window to list box.<br /><br />pWnd ->GetWindowText (strCaption)<br /><br />list.AddString (strCaption)<br />}<br />//Get next window in window list.<br />pWnd=pWnd ->GetWindow(GW_HWNDNEXT)<br />}<br />}</p><p>錛?9錛?濡備綍紜畾Windows鍜學(xué)indows緋葷粺鐩綍<br />鏈変袱涓猄DK鍑芥暟鍙互瀹屾垚璇ュ姛鑳姐侴etWindowsDirectory鍜孏etSystemDirectory錛屼笅渚嬭鏄庝簡(jiǎn)濡備綍浣跨敤榪欎袱涓嚱鏁幫細(xì)<br /><br />TCHAR szDir [MAX_PATH]<br />//Get the full path of the windows directory.<br />鈭?: GetWindowsDirectory (szDir, MAX_PATH)<br />TRACE ("Windows directory %s\n", szDir)<br />//Get the full path of the windows system directory.<br />鈭?: GetSystemDirectory (szDir, MAX_PATH)<br />TRACE ("Windows system directory %s\n", szDir)</p><p>錛?0錛?鍦ㄥ摢鍎垮垱寤轟復(fù)鏂囦歡<br />璋冪敤SDK鍑芥暟GetTemPath鍙互紜畾涓存椂鏂囦歡鐨勭洰褰曪紝璇ュ嚱鏁伴鍏堜負(fù)涓存椂璺緞媯(gè)嫻婽MP鐜鍙橀噺錛氬鏋滄病鏈夋寚瀹歍MP錛屾嫻婽MP鐜鍙橀噺錛岀劧鍚庤繑鍥炲埌褰撳墠鐩綍銆備笅渚嬭鏄庝簡(jiǎn)濡備綍鍒涘緩涓涓復(fù)鏃舵枃浠躲?br /><br />鈥?br />//get unique temporary file.<br />CString strFile<br />GetUniqueTempName (strFile)<br />TRY<br />{<br />//Create file and write data.Note that file is closed<br />//in the destructor of the CFile object.<br />CFile file (strFile,CFile ::modeCreate | Cfile:: modeWrite)<br /><br />//write data<br />}<br /><br />CATCH (CFileException, e)<br />{<br />//error opening file<br />}<br />END_CATCH<br />鈥?br /><br />Void GetuniqueTempName (CString& strTempName)<br />{<br />//Get the temporary files directory.<br />TCHAR szTempPath [MAX_PATH]<br />DWORD dwResult=:: GetTempPath (MAX_PATH, szTempPath)<br />ASSERT (dwResult)<br /><br />//Create a unique temporary file.<br />TCHAR szTempFile [MAX_PATH]<br />UINT nResult=GetTempFileName (szTempPath, _T ("~ex"),0,szTempfile)<br />ASSERT (nResult)<br /><br />strTempName=szTempFile<br />}</p><p>錛?1錛?鎴戞庢牱鎵嶈兘寤虹珛涓涓瓑寰呭厜鏍?<br />璋?鐢?BeginWaitCursor 鍑?鏁?鏉?鍚?鍔?絳?寰?鍏?鏍囷紝璋?鐢?EndWaitCursor 鍑?鏁?鏉?緇?鏉?絳?寰?鍏?鏍囥傝 娉?鎰忥紝浜?鑰?閮?瑕?璋?鐢?app 鐨?鎴?鍛?鍑?鏁幫紝濡?涓?鎵 紺?<br /><br />聽聽聽聽AfxGetApp()->BeginWaitCursor();<br />聽聽聽聽// 瑕佸仛鐨勪簨<br />聽聽聽聽AfxGetApp()->EndWaitCursor();</p><p>錛?2錛?鎴戝湪MDI妗嗘灦涓湁涓?form 瑙嗙獥銆傚畠鏈変釜鍙栨秷鎸夐挳錛屾垜闇瑕佸綋鐢ㄦ埛鎸夊彇娑堟寜閽椂鍙叧闂璮orm瑙嗙獥銆傛垜搴旇濡備綍鍏抽棴璇ユ枃妗?<br />璋?鐢?OnCloseDocument 鍑?鏁般?/p><p>錛?3錛?濡備綍璁塊棶妗岄潰紿楀彛<br />闈?rùn)鎬佸嚱鏁癈Wnd:: GetDesktopWindow 榪斿洖妗岄潰紿楀彛鐨勬寚閽堛備笅渚嬭鏄庝簡(jiǎn)MFC鍑芥暟CFrameWnd::BeginModalStae鏄浣曚嬌鐢ㄨ鍑芥暟榪涘叆鍐呴儴紿楀彛鍒楄〃鐨勩?br /><br />void CFrameWnd::BeginModalState ()<br />{<br />鈥?br />//first count all windows that need to be disabled<br />UINT nCount=0<br />HWND hWnd= :: GetWindow (:: GetDesktopWindow(), GW_CHILD)<br />while (hWnd!=NULL)<br />{<br />if (:: IsWindowEnabled (hwnd)<br />&& CWnd::FromHandlePermanent (hWnd)!=NULL<br />&& AfxIsDescendant (pParent->m_hWnd, hWnd)<br />&& :: SendMessage (hWnd, WM_DISABLEMODAL, 0, 0)==0)<br />{<br />++nCount<br />}<br />hWnd=:: GetWindow (hWnd, GW_HWNDNEXT)<br />}<br />鈥?/p><p></p><p>聽</p><p>錛?6錛?鎴戝湪鎴戠殑紼嬪簭涓槸浜?jiǎn)CDWordArray銆傛垜鍚戝畠娣誨姞浜?jiǎn)绾?0,000涓暣鏁幫紝榪欎嬌寰楀畠鍙樺緱闈炲父闈炲父鎱€備負(fù)浠涔堜細(xì)榪欎箞緋?<br />CDWordArray 鏄?寰?濂?鐢?鐨勶紝鍙?鏄?鍥?涓?浣?娌?鏈?鎸?瀹?鏁?緇?鐨勬渶澶у昂瀵搞傚洜 姝わ紝褰?浣?娣?鍔?鏂?鍏?绱?鏃訛紝璇?綾?浼?浠?鍫?涓?閲?鏂?鍒?閰?絀?闂淬備笉 騫?鐨?鏄紝璇?綾?浼?鍦?姣?嬈?鎻?鍏?鏂?鍏?绱?鏃?閮?涓?鏁?緇?閲?鏂?鍒?閰?絀?闂淬傚 鏋?浣?鍚?瀹?娣?鍔?浜?寰?澶?鏂?鍏?绱狅紝鎵 鏈?榪?浜?鍒?閰?鍜?澶?鍒?鏁?緇?鐨?鎿?浣?浼?灝?浼?浣?瀹?鍙?鎱€傝В 鍐?璇?闂?棰?鐨?鏂?娉?鏄紝浣?鍙?浠?浣?鐢?SetSize 鍑?鏁?鐨?絎?浜?涓?鍙?鏁?鏉?鏀?鍙?榪?縐?閲?鏂?鍒?閰?鐨?棰?鐜囥備緥 濡傦紝濡?鏋?浣?鎶?璇?鍙?鏁?璁?緗?涓?500錛屽垯 姣?嬈?鏁?緇?絀?闂?瓚?鍑?鏃?瀹?鎵?閲?鏂?鍒?閰?騫?娣?鍔?500 涓?鏂?絀?闂達(dá)紝鑰?涓?鏄?1 涓傝繖 鏍?涓 鏉ワ紝浣?灝?鍙?浠?涓?鐢?閲?鏂?鍒?閰?鑰?娣?鍔?浜?鍙?澶?499 涓?鍏?绱?絀?闂達(dá)紝榪?涔?浼?澶?澶?鎻?楂?紼?搴?鐨?榪?琛?閫?搴︺?/p><p></p><p>錛?7錛?鎴戣濡備綍鏀瑰彉MDI妗嗘灦紿楀彛鐨勫瓙紿楀彛鐨勫ぇ灝忎互浣垮湪紿楀彛浠ヤ竴瀹氱殑澶у皬鎵撳紑?<br />鍦?瑙?涓?鐨?OnInitialUpdate 鍑?鏁?涓?璋?鐢?GetParentFrame 鍑?鏁般侴etParentFrame 浼?榪?鍥?涓 鎸?鍚?涓 淇?瀛?鏈?璇?瑙?鐨?妗?鏋?紿?鍙?鐨?鎸?閽堛傜劧 鍚?璋?鐢?鍦?妗?鏋?紿?鍙?涓?璋?鐢?MoveWindow銆?/p><p>錛?8錛?鍦ㄦ垜鐨勭▼搴忕殑鏌愪簺閮ㄥ垎錛屾垜鍙互璋冪敤 MessageBox 鍑芥暟鏉ュ緩绔嬩竴涓俊鎭璇濇錛屼緥濡傚湪瑙嗙被涓備絾鏄紝鍦ㄥ叾瀹冮儴鍒嗘垜鍗翠笉鑳斤紝濡傛枃妗g被涓備負(fù)浠涔堬紵鎴戞庢牱鎵嶈兘鍦ㄦ垜鐨勫簲鐢ㄧ▼搴忕被涓緩绔嬩竴涓俊鎭璇濇錛?br />MessageBox 鍑?鏁?鏉?鑷?CWnd 綾伙紝鎵 浠?浣?鍙?鑳?鍦?浠?CWnd 緇?鎵?鐨?綾?( 濡?CView ) 涓?璋?鐢?瀹冦備絾 鏄紝MFC 涔?鎻?渚?浜?AfxMessageBox 鍑?鏁幫紝浣?鍙?浠?鍦?浠?浣?鍦?鏂?璋?鐢?瀹冦?/p><p></p><p>錛?9錛?鎴戦渶瑕佸湪鎴戠殑紼嬪簭涓緗叏灞鍙橀噺錛屼互浣挎枃妗d腑鐨勬墍鏈夌被閮借兘璁塊棶銆傛垜搴旇鍚у畠鏀懼埌鍝効?<br />鎶?璇?鍙?閲?鏀?鍒?璇?搴?鐢?紼?搴?綾?鐨?澶?鏂?浠?涓?鐨?attribute 澶勩傜劧 鍚庯紝鍦?紼?搴?鐨?浠?浣?鍦?鏂癸紝浣?閮?鍙?浠?鐢?涓?闈?鐨?鏂?娉?鏉?璁?闂?璇?鍙?閲忥細(xì)<br /><br />聽聽聽聽CMyApp *app = (CMyApp *)AfxGetApp();<br />聽聽聽聽app->MyGlobalVariable = ...</p><p><br />錛?1錛?鎴戞庢牱鎵嶈兘鍦ㄦ垜鐨勫簲鐢ㄧ▼搴忎腑寰幆嫻忚宸茬粡鎵撳紑鐨勬枃妗?<br />浣跨敤CDocTemplate涓湭鍏紑鐨凣etFirstDocPosition()鍜孏etNextDoc()鍑芥暟銆?</p><p></p><p>錛?2錛夋墠鑳藉湪鎴戠殑搴旂敤紼嬪簭涓驚鐜祻瑙堝凡緇忔墦寮鐨勮?<br />浣?鐢?CDocument 涓?鏈?鍏?寮 鐨?GetFirstViewPosition() 鍜?GetNextView() 鍑?鏁般?/p><p>錛?3錛夋暟PreCreateWindow鏄共浠涔堢敤鐨?<br />PreCreateWindow 鍏?璁?浣?鍦?璋?鐢?CreateWindow 涔?鍓?鏉?鏀?鍙?紿?鍙?灞?鎬с?/p><p>錛?4錛夎鎬庢牱闃叉MFC鍦ㄧ獥鍙f爣棰樻爮涓婃妸鏂囨。鍚嶉緗垚搴旂敤紼嬪簭鍚?<br />鍦?PreCreateWindow 鍑?鏁?涓?鍒?闄?FWS_PREFIXTITLE 鏍?蹇?鐨?紿?鍙?鏍?寮忥細(xì)<br /><br />聽聽聽聽cs.style &= ~FWS_PREFIXTITLE;</p><p></p><p>錛?5錛?鎴戝簲璇ユ庢牱闃叉MFC鍦ㄧ獥鍙f爣棰樻爮涓婃坊鍔犳枃妗e悕?<br />鍦?PreCreateWindow 鍑?鏁?涓?鍒?闄?FWS_ADDTOTITLE 鏍?蹇?鐨?紿?鍙?鏍?寮忥細(xì)<br /><br />聽聽聽聽cs.style &= ~FWS_ADDTOTITLE ;</p><p></p><p>錛?6錛?鎴戝簲璇ュ浣曟敼鍙樿紿楀彛鐨勫ぇ灝?<br />鍥?涓?瑙?紿?鍙?瀹?闄?涓?鏄?妗?鏋?紿?鍙?鐨?瀛?紿?鍙o紝鎵 浠?浣?蹇?欏?鏀?鍙?妗?鏋?紿?鍙?鐨?澶?灝忥紝鑰?涓?鏄?鏀?鍙?瑙?紿?鍙c備嬌 鐢?CView 綾?涓?鐨?GetParentFrame() 鍑?鏁?鑾?寰?鎸?鍚?妗?鏋?紿?鍙?鐨?鎸?閽堬紝鐒?鍚?璋?鐢?MoveWindow() 鍑?鏁?鏉?鏀?鍙?妗?鏋?鐨?澶?灝忋傝繖 浼?浣?鍙?灝?瀵?鐨?瑙?鍏?婊?妗?鏋?紿?鍙c?/p><p>錛?7錛?鎴戞湁涓鏃犳ā寮忓璇濇銆傛垜鎬庢牱鎵嶈兘鍦ㄧ獥鍙i鍑烘椂鍒犻櫎CDialog瀵硅薄?<br />鎶娾渄elete this鈥濆姞 鍒?PostNcDestroy 涓傝繖 涓?瑕?鐢?鍦?闇 瑕?鑷?鍔?鍒?闄?瀵?璞?鐨?鍦?鍚堛?/p><p></p><p>錛?8錛?涓轟粈涔堟妸鈥渄elete this鈥濇斁鍦≒ostNcDestroy涓屼笉鏄疧nNcDestroy?<br />OnNcDestroy 鍙?琚?宸?寤?绔?鐨?紿?鍙?璋?鐢ㄣ傚 鏋?寤?绔?紿?鍙?澶?璐?( 濡?PreCreateWindow )錛屽垯 娌?鏈?紿?鍙?澶?鏉?鍙?閫?WM_NCDESTROY 娑?鎭侾ostNcDestroy 鏄?鍦?瀵?璞?紿?鍙?琚?瀹?鍏?鍒?闄わ紝鍦?OnNcDestroy 鍚庯紝鐢?鑷?鍦?紿?鍙?寤?绔?澶?璐?涔?鍚?璋?鐢?鐨勩?/p><p></p><p>錛?9錛?File鑿滃崟涓殑MRU鍒楄〃鏄粠鍝効鏉ョ殑錛熷垪琛ㄤ腑鐨勫悕瀛楁斁鍦ㄥ摢鍎夸簡(jiǎn)錛熸垜鎬庢牱鎵嶈兘鏀瑰彉鍒楄〃涓」鐩殑鏈澶у鹼紵<br />鍦?搴?鐢?紼?搴?綾?鐨?InitInstance 鍑?鏁?涓?瀵?LoadStdProfileSettings 鐨?璋?鐢?涓傝 璋?鐢?鎺?鍙?涓 涓?鍙?鏁?( 鍦?緙?鐪?鎯?鍐?涓?濡?鏋?娌?鏈?浼?閫?鍊?鍒?涓?4 )銆侻RU 鏂?浠?鍚?鏄?浠?INI 鏂?浠?涓?璋?鐢?鐨勩傚 鏋?浣?鏈?甯?鏈?ID_FILE_MRU_FILE1 鐨?ID 鐨?鑿?鍗?閫?欏癸紝瀹?浼?涓?璋?鍏?鐨?MRU 鍒?琛?鎵 鏇?鎹€傚 鏋?浣?鏀?鍙?浼?閫?緇?LoadStdProfileSettings 鐨?鏁?鍊?( 鏈 澶?涓?16 )錛屽垯 浣?灝?鏀?鍙?浜?鎵 瑁?濡?鏂?浠?鍚?鐨?鏈 澶?鍊箋?/p><p>錛?0錛?鎴戝湪鑿滃崟涓坊鍔犱簡(jiǎn)鏂扮殑欏廣備絾鏄紝褰撴垜閫夎欏規(guī)椂錛屽湪鐘舵佹爮涓婃病鏈夊嚭鐜頒換浣曟彁紺轟俊鎭備負(fù)浠涔?<br />鎵?寮 璧?婧?鏂?浠?涓?鐨?鑿?鍗?妯?鏉褲傛墦 寮 鏂?鑿?鍗?閫?欏?鐨?灞?鎬?瀵?璇?妗嗐傚湪 瀵?璇?妗?鐨?搴?閮?鐨?Prompt 緙?杈?妗?涓?錛屼綘 鍙?浠?濡?涓?鎸?瀹?鐘?鎬?鏍?涓?鐨?鎻?紺?淇?鎭?鍜?宸?鍏?鏍?涓?鐨?鎻?紺?淇?鎭?( 濡?鏋?浣?宸?緇?寤?绔?鐨?宸?鍏?鏍?鎸?閽?):<br /><br />聽聽聽聽Status bar string\nFlying tag<br /></p><p>錛?2錛?鎴戝緩绔嬩簡(jiǎn)涓涓璇濇銆備絾鏄綋鎴戞樉紺鴻瀵硅瘽妗嗘椂錛岀涓涓紪杈戞鎬繪槸涓嶈兘鑾峰緱鐒︾偣錛屾垜蹇呴』鍗曞嚮瀹冩潵浣垮畠鑾峰緱鐒︾偣銆傛垜鎬庢牱鎵嶈兘浣跨涓涓紪杈戞鍦ㄥ璇濇鎵撳紑鏃跺氨鑾峰緱鐒︾偣?<br />鎵?寮 璧?婧?緙?杈?鍣?涓?鐨?瀵?璇?妗?妯?鏉褲傚湪 Layout 鑿滃崟 涓?閫?鎷?Tab Order 閫?欏廣傛寜 浣?鐨?闇 姹?鍗?鍑?瀵?璇?妗?涓?鐨?鎺?鍒?鏉?閲?鏂?鎺?鍒?榪?浜?鎺?鍒?鐨?tab 欏?搴忋?/p><p>錛?3錛?鎴戞庢牱鎵嶈兘浣夸竴涓獥鍙e叿鏈夆渁lways on top鈥濈壒鎬?<br />鍦?璋?鐢?OnFileNew 鍚庯紝鍦?浣?鐨?InitInstance 鍑?鏁?涓?鍔?涓?涓?闈?鐨?浠?鐮侊細(xì)<br /><br />m_pMainWnd->SetWindowPos(&CWnd::wndTopMost,0,0,0,0, SWP_NOMOVE | SWP_NOSIZE);</p><p>(94)聽聽 鎴戣涓烘垜鐨刦orm view娣誨姞鏂囨。妯℃澘銆傛垜鍏堝緩绔嬩簡(jiǎn)瀵硅瘽妗嗘ā鏉匡紝鐒跺悗浣跨敤ClassWizard寤虹珛浜?jiǎn)鍩轰簬CFormView鐨勬柊綾伙紝瀹冧篃鏄粠CDocument緇ф壙鏉ョ殑銆傛垜榪樺緩绔嬩簡(jiǎn)鐩稿簲鐨勮祫婧愬茍鍦↖nitInstance涓坊鍔犱簡(jiǎn)鏂扮殑鏂囨。妯℃澘銆備絾鏄紝褰撴垜璇曞浘榪愯璇ョ▼搴忔椂錛屽嚭鐜頒簡(jiǎn)Assertion淇℃伅銆備負(fù)浠涔?</p><p>form 鐨?瀵?璇?妗?妯?鏉?闇 瑕?浜?鐗?孌?璁?緗?浠?渚?鍙?鐢?浜?CFromView銆傜‘ 淇?榪?浜?璁?緗?鐨?鏈 綆 鍗?鏂?娉?鏄?浣?鐢?AppWizard 鏉?寤?绔?CFormView 搴?鐢?紼?搴忥紝騫?鏌?鐪?AppWizard 鎵 寤?绔?鐨?瀵?璇?妗?妯?鏉?鎵 閫?鎷?鐨凷tyles Properties銆備綘 浼?鍙?鐜?璇?瀵?璇?妗?妯?鏉?鍏?鏈?涓?鍒?鏍?寮忥細(xì)娌?鏈?鏍?棰?鏍忋佷笉 鍙?瑙?鍜屸淐hild鈥濄傛妸 浣?鐨?form view 鐨?瀵?璇?妗?灞?鎬?鍙?鎴?榪?鏍?灝?鍙?浠?浜?jiǎn)銆?br /><br />(95)聽聽 鎴戝湪涓瀵硅瘽妗嗕腑鏈変竴鍒楄〃妗嗭紝鎴戦渶瑕乼abbed鍒楄〃妗嗕腑鐨勯」鐩備絾鏄紝褰撴垜澶勭悊鍚湁tab瀛楃(鐢ˋddString娣誨姞鐨?鐨勫垪琛ㄩ」鏃訛紝tab琚樉紺烘垚灝忛粦鍧楄屾病鏈夊睍寮銆傚摢鍎垮嚭閿欎簡(jiǎn)?</p><p>鍦?瀵?璇?妗?妯?鐗?涓紝鎵?寮 鍒?琛?妗?鐨?灞?鎬с傜‘ 淇?閫?鎷?浜?jiǎn)鈥淯se Tabstops鈥?鏍?寮忋傜劧 鍚庯紝紜?淇?鍦?瀵?璇?妗?綾?涓?OnInitDialog 鍑?鏁?涓?璋?鐢?SetTabStops銆?br /><br />(96)聽聽鎴戝緩绔嬩簡(jiǎn)涓涓簲鐢ㄧ▼搴忥紝騫朵嬌鐢ㄤ簡(jiǎn)CRecordset綾匯備絾鏄紝褰撴垜榪愯璇ョ▼搴忔椂錛屽畠璇曞浘瑕佽闂暟鎹簱錛屽茍緇欏嚭鈥淚nternal Application Error鈥濆璇濇銆傛垜搴旇鎬庢牱鍋?</p><p>閫?甯?鎯?鍐?涓嬶紝褰?浣?鐨?紼?搴?涓?鍚?鏁?鎹?搴?鍙?閫?淇?鎭?鐨?SQL 璇?鍙?鍑?鐜?闂?棰?鏃?鎵?鍑?鐜?璇?瀵?璇?妗嗐備緥 濡傦紝鍙?瑙?涓?闈?鐨?渚?瀛愶細(xì)<br /><br />聽聽聽聽set.m_strFilter = "(ZipCode = '27111')";<br />濡?鏋?ZipCode 鍒?琚?瀹?涔?涓?瀛?絎?涓?鏃?涓?浼?鍑?鐜?闂?棰橈紝濡?鏋?瀹?涔?涓?long錛屽垯 浼?鍑?鐜扳淚nternal Application Error鈥濆 璇?妗嗭紝榪?鏄?鐢?浜?綾?鍨?涓?鍖?閰?鐨?緙?鏁呫傚 鏋?浣?鍒?闄?27111 鐨?鍗?寮?鍙鳳紝鍒?涓?浼?鍑?鐜?闂?棰樸傚綋 浣?鐪?鍒扳淚nternal Application Error鈥濇椂錛屾渶 濂?媯(gè) 鏌?涓 涓?璇?鍥?瑕?鍙?閫?緇?鏁?鎹?搴?鐨?SQL 璇?鍙ャ?br /></p><p>(98)聽聽聽聽 褰撴垜鎵撳紑搴旂敤紼嬪簭涓殑紿楀彛鏃訛紝鎴戣浼犻掕紿楀彛鐨勭煩褰㈠昂瀵搞傝鐭╁艦鎸囧畾浜?jiǎn)绐楀彛鐨勫鍥村ぇ灏忓Q屼絾鏄綋鎴戣皟鐢℅etClientRect鏃訛紝鎵寰楀埌鐨勫昂瀵歌姣旀墍甯屾湜鐨勫艱灝?鍥犱負(fù)宸ュ叿鏍忓拰紿楀彛杈規(guī)鐨勭紭鏁?銆傛湁鍏跺畠鏂規(guī)硶鏉ヨ綆楃獥鍙g殑灝哄鍚?</p><p>鍙?瑙?CWnd::CalcWindowRect銆?br /><br />(99)聽聽 鎴戝湪鏂囨。綾諱腑璁劇疆浜?jiǎn)涓涓暣鍨嬪彉閲忋備絾鏄紝褰撴垜璇曞浘鎶婅鍙橀噺鍐欏叆Serialize鍑芥暟涓殑archive鏂囦歡涓椂錛屽嚭鐜頒簡(jiǎn)綾誨瀷閿欒銆傝屾枃妗d腑鐨勫叾瀹冨彉閲忔病鏈夐棶棰樸備負(fù)浠涔?</p><p>archive 綾?鍙?閲?杞?鏌?浜?綾?鍨?鐨?>> 鍜?<< 鎿?浣?絎︺傗渋nt鈥濈被 鍨?娌?鏈?鍦?鍏?涓紝涔?璁?鏄?鍥?涓?int 鍙?閲?鍦?Windows 3.1 涓?Windows NT/95 鏈?鎵 涓?鍚?鐨?緙?鏁?鍚с傗渓ong鈥濈被 鍨?寰?鍒?浜?鏀?鎸侊紝鎵 浠?浣?鍙?浠?鎶?int 綾?鍨?鏀?鎴?long 鍨嬨傚弬 瑙?MFC 甯?鍔?鏂?浠?涓?CArchive 綾匯?br /></p><p><br />(100)聽聽濡備綍鎺у埗鑿滃崟鐨勫ぇ灝?<br />鎴戠敤MFC鐨凜Menu鐢熸垚浜?jiǎn)涓涓姩鎬佽彍鍗?渚嬪File,Edit,View...Help), 鎴戞兂鎺у埗榪欎釜鑿滃崟鐨勫ぇ灝?闀?楂?.</p><p>鏂規(guī)硶涓:鏌ユ壘 WM_MEASUREITEM 鍜?MEASUREITEMSTRUCT.<br />鏂規(guī)硶浜?鏌ヨ緋葷粺::GetSystemMetric(SM_CXMENUSIZE).</p><p>聽聽聽聽 /* 浣犲彲浠ラ氳繃濡備笅浠g爜鏉ヨ幏寰楁枃鏈殑澶у皬:<br />聽聽聽聽聽聽聽聽(A)鑾峰緱琚嬌鐢ㄧ殑瀛椾綋 */</p><p>聽聽聽聽聽聽 NONCLIENTMETRICS ncm;<br />聽聽聽聽 HFONT hFontMenu;<br />聽聽聽聽 SIZE size;<br />聽聽聽聽 size.cy = size.cy = 0;</p><p>聽聽聽聽 memset(&ncm, 0, sizeof(NONCLIENTMETRICS));<br />聽聽聽聽 ncm.cbSize = sizeof(NONCLIENTMETRICS);<br />聽聽聽聽 if (SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), &ncm, 0))<br />聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽hFontMenu = CreateFontIndirect(&ncm.lfMenuFont);<br />聽聽聽聽聽聽聽聽聽聽/*<br />聽聽聽聽聽聽聽聽聽聽(B) 鑾峰緱鑿滃崟欏圭殑鏂囨湰: */<br />聽聽聽聽聽聽聽聽聽聽char szText[_MAX_PATH];</p><p>聽聽聽聽聽聽聽聽聽聽pMenu->GetMenuString(0, szText, _MAX_PATH, MF_BYPOSITION);<br />聽聽聽聽聽聽聽聽聽聽/*<br />聽聽聽聽聽聽聽聽聽聽鐒跺悗,鑾峰緱鑿滃崟欏規(guī)枃鏈殑楂樺害: */<br />聽聽聽聽聽聽聽聽聽聽HFONT hFontOld;<br />聽聽聽聽聽聽聽聽聽聽HDC hDC;</p><p>聽聽聽聽聽聽聽聽聽聽hDC = ::GetDC(NULL);<br />聽聽聽聽聽聽聽聽聽聽hFontOld = (HFONT) ::SelectObject(hDC, hFontMenu);<br />聽聽聽聽聽聽聽聽聽聽GetTextExtentPoint32(hDC, szText, lstrlen(szText), &size);<br />聽聽聽聽聽聽聽聽聽聽SelectObject(hDC, hFontOld);<br />聽聽聽聽聽聽聽聽聽聽::ReleaseDC(NULL, hDC);<br />聽聽聽聽 }<br />聽聽聽聽 /*姝ゆ椂,size.cy鍗充負(fù)楂樺害,size.cx涓哄搴?浣犲彲浠ョ粰鑿滃崟鍔犱笂鑷畾涔夌殑楂樺害鍜屽搴?閫氳繃姣旇緝,鎴戝彂鐜板搴︿負(fù)4</p><p>姣旇緝鍚堥傘?/</p><p><br />(101)聽聽鏀瑰彉LVIS_SELECTED鐨勭姸鎬侀鑹?<br />鎴戞兂灝咰ListCtrl欏瑰拰CTreeCtrl欏瑰湪LVIS_SELECTED鐘舵佹椂鐨勯鑹插彉鐏?</p><p>鏂規(guī)硶涓:鏌ユ壘鍑芥暟CustomDraw,瀹冩槸IE4鎻愪緵鐨勫叕鍏辨帶鍒?鍏佽鏈変綘鑷繁鐨勪唬鐮?<br />鏂規(guī)硶浜?鐢熸垚涓涓猟raw鎺т歡,鐒跺悗鍦―rawItem涓鐞嗘枃鏈鑹?</p><p>(102)聽聽 濡備綍鍙瓨鍌ㄦ枃妗g殑鏌愪竴閮ㄥ垎?<br />鎴戝彧鎯沖瓨鍌ㄦ枃妗g殑鏌愪竴閮ㄥ垎,鑳藉惁璞′嬌鐢ㄦ枃浠朵竴鏍蜂嬌鐢ㄦ枃妗?(涔熷氨鏄湁瀹氫綅鍑芥暟).灝嗘瘡涓狢Archive綾昏緗負(fù)CFile綾葷殑媧劇敓綾?榪欐牱浣犲氨鑳戒嬌鐢⊿eek絳夋垚鍛樺嚱鏁?</p><p>(103)聽聽 淇濆瓨宸ュ叿鏉¤彍鍗曟湁bug鍚?<br /></p><p>浣跨敤嫻姩鑿滃崟鏉℃椂,SaveBarState鍜孡oadBarState鍑虹幇浜?jiǎn)闂?濡傛灉鑿滃崟鏄誕鍔ㄧ殑,閲嶈搗搴旂敤紼嬪簭鏃跺畠浼?xì)鍑虹幇鍦ㄥ乏涓婅?鑰屽畠鍥哄畾鍦ㄥ睆騫曞叾瀹冧綅緗椂,涓嬩竴嬈″惎鍔ㄥ氨浼?xì)鍑虹幇鍦ㄨ浣嵕|?榪欐槸浠涔堝師鍥?浣犺瘯璇曡繖涓狿ToolBar->Create(this,...,ID_MYTOOLBAR);<br />浣犵殑宸ュ叿鏉¢渶瑕佸寘鎷琲d,鑰屼笉鏄薄榛樿鐨勫伐鍏鋒潯閭f牱.</p><p>(104)聽聽 Tip of the day鐨刡ug</p><p>鎴戝垱寤轟簡(jiǎn)涓涓畝鍗曠殑mdi搴旂敤紼嬪簭,浣跨敤.BSF(鑷畾涔夌殑鏂囨。鎵╁睍鍚?浣滀負(fù)瀹冪殑鏂囨。鎴戜繚瀛樹竴涓猣oo.bsf鏂囨。鍚?鍙互鍦ㄨ祫婧愮鐞嗗櫒涓弻鍑昏鏂囦歡鎵撳紑mdi搴旂敤紼嬪簭鍚屾椂鎵撳紑foo.bsf鏂囨。.浣嗗綋鎴戠粰mdi搴旂敤紼嬪簭鍔犱笂a tip of the day緇勪歡涔嬪悗,浠庤祫婧愮鐞嗗櫒涓弻鍑籪oo.bsf鍚?灝變細(xì)緇欐垜涓涓鍛?ASSERT(::IsWindow(m_hWnd)),鐒跺悗mdi搴旂敤紼嬪簭灝辨閭d簡(jiǎn).<br /><br />褰撲粠dde鍚姩搴旂敤紼嬪簭(渚嬪:鍙屽嚮鐩稿叧鏂囨。)鏃?"Tip of the Day"鏄湁bug鐨?浣犲彲浠ョ湅鐪嬪嚱鏁?ShowTipAtStartup",瀹冨湪"InitInstance"涓皟鐢?鍙互鐪嬪埌tip of the day浣滀負(fù)涓涓ā寮忓璇濇鏄劇ず,鍦ㄥ鐞嗗叾瀹冩秷鎭椂瀹冧竴鐩磋繘琛屾秷鎭驚鐜綘鍙績(jī)淇敼ShowTipAtStartup浣垮叾浠巇de鍚姩鏃朵笉鍑虹幇tip of the day.<br />void CTipOfApp::ShowTipAtStartup(void)<br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽// CG: This function added by 'Tip of the Day' component.<br /><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽CCommandLineInfo cmdInfo;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽ParseCommandLine(cmdInfo);<br /><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if (<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽cmdInfo.m_bShowSplash &&<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽cmdInfo.m_nShellCommand != CCommandLineInf:FileDDE<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽)<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽CTipDlg dlg;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if (dlg.m_bStartup)<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽dlg.DoModal();<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽}<br />濡傛灉榪樻湁鍏跺畠bug,浣犲彲浠ヨ瀹歝mdInfo.m_nShellCommand鐨勮繃婊?<br /><br />(105)聽聽 濡備綍鍙互璁╂垜鐨勭▼搴忓彲浠ユ樉紺哄湪鍏跺畠鐨勭獥鍙d笂闈?<br /><br />璁╃敤鎴烽夋嫨"鎬繪槸鍦ㄦ渶涓婇潰"鏈濂芥槸鍦ㄧ郴緇熻彍鍗曢噷鍔犲叆涓涓夐」.鍙互閫氳繃淇敼WM_SYSCOMMAND娑堟伅鏉ュ彂閫佺敤鎴風(fēng)殑閫夋嫨.鑿滃崟鐨勫懡浠ゆ爣璇?id)浼?xì)浣滀皋Z竴涓弬鏁頒紶緇橭nSysCommand().瑕佸畾涔夋爣璇?id),灝嗗涓嬩唬鐮佸姞鍏ュ埌CMainFrame.CPP涓?<br /><br />聽聽聽聽#define WM_ALWAYSONTOP WM_USER + 1<br />灝?鎬誨湪鏈涓婇潰"鐨勮彍鍗曢」鍔犲叆鍒扮郴緇熻彍鍗曚腑,灝嗗涓嬩唬鐮佸姞鍏ュ埌鍑芥暟CMainFrame::OnCreate()涓?<br /><br />聽聽聽聽聽聽CMenu* pSysMenu = GetSystemMenu(FALSE);<br />聽聽聽聽聽聽pSysMenu->AppendMenu(MF_SEPARATOR);<br />聽聽聽聽聽聽pSysMenu->AppendMenu(MF_STRING, WM_ALWAYSONTOP,<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "&Always On Top");<br />浣跨敤ClassWizard,鍔犲叆瀵筗M_SYSCOMMAND娑堟伅鐨勫鐞?浣犲簲璇ユ敼鍙樻秷鎭繃婊ゅ櫒,浣跨敤緋葷粺鍙互澶勭悊榪欎釜娑堟伅.<br />void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam)<br />{<br />聽聽聽聽switch ( nID )<br />聽聽聽聽{<br />聽聽聽聽case WM_ALWAYSONTOP:<br /><br />聽聽聽聽聽聽聽聽if ( GetExStyle() & WS_EX_TOPMOST )<br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽SetWindowPos(&wndNoTopMost, 0, 0, 0, 0,<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽SWP_NOSIZE | SWP_NOMOVE);<br />聽聽聽聽聽聽聽聽聽聽聽聽GetSystemMenu(FALSE)->CheckMenuItem(WM_ALWAYSONTOP,<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽MF_UNCHECKED);<br />聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽else<br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽SetWindowPos(&wndTopMost, 0, 0, 0, 0,<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽SWP_NOSIZE | SWP_NOMOVE);<br />聽聽聽聽聽聽聽聽聽聽聽聽GetSystemMenu(FALSE)->CheckMenuItem(WM_ALWAYSONTOP,MF_CHECKED);<br />聽聽聽聽聽聽聽聽}<br /><br />聽聽聽聽聽聽聽聽break;<br /><br />聽聽聽聽default:<br />聽聽聽聽聽聽聽聽CFrameWnd::OnSysCommand(nID, lParam);<br />聽聽聽聽}<br />}<br /><br />(106)聽聽聽聽濡備綍鎺у埗紿楀彛妗嗘灦鐨勬渶澶ф渶灝忓昂瀵?</p><p>瑕佹帶鍒朵竴涓鏋剁殑鐨勬渶澶ф渶灝忓昂瀵?浣犻渶瑕佸仛涓や歡浜嬫儏.鍦–FrameWnd鐨勭戶鎵跨被涓鐞嗘秷鎭疻M_GETMINMAXINFO,緇撴瀯MINMAXINFO璁劇疆浜?jiǎn)鏁翠釜绐楀彛绫荤殑闄愬?鍥犳璁頒綇瑕佽冭檻宸ュ叿鏉?鍗峰姩鏉$瓑絳夌殑澶у皬.<br /><br />// 鏈澶ф渶灝忓昂瀵哥殑璞$礌鐐?- 紺轟緥<br />#define MINX 200<br />#define MINY 300<br />#define MAXX 300<br />#define MAXY 400<br /><br />void CMyFrameWnd::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)<br />{<br />聽聽聽聽CRect rectWindow;<br />聽聽聽聽GetWindowRect(&rectWindow);<br /><br />聽聽聽聽CRect rectClient;<br />聽聽聽聽GetClientRect(&rectClient);<br /><br />聽聽聽聽聽聽// get offset of toolbars, scrollbars, etc.<br />聽聽聽聽int nWidthOffset = rectWindow.Width() - rectClient.Width();<br />聽聽聽聽int nHeightOffset = rectWindow.Height() - rectClient.Height();<br /><br />聽聽聽聽lpMMI->ptMinTrackSize.x = MINX + nWidthOffset;<br />聽聽聽聽lpMMI->ptMinTrackSize.y = MINY + nHeightOffset;<br />聽聽聽聽lpMMI->ptMaxTrackSize.x = MAXX + nWidthOffset;<br />聽聽聽聽lpMMI->ptMaxTrackSize.y = MAXY + nHeightOffset;<br />}<br />絎簩姝?鍦–FrameWnd鐨勭戶鎵跨被鐨凱reCreateWindow鍑芥暟涓幓鎺塛S_MAXIMIZEBOX娑堟伅,鍚﹀垯鍦ㄦ渶澶у寲鏃朵綘灝嗗緱涓嶅埌棰勬枡鐨勭粨鏋?<br /><br />BOOL CMyFrameWnd::PreCreateWindow(CREATESTRUCT& cs)<br />{<br />聽聽聽聽cs.style &= ~WS_MAXIMIZEBOX;<br />聽聽聽聽return CFrameWnd::PreCreateWindow(cs);<br />}<br /><br />(107)聽聽聽聽濡備綍鏀瑰彉紿楀彛妗嗘灦鐨勯鑹?</p><p>MDI妗嗘灦鐨勫鎴峰尯琚彟涓涓獥鍙g殑妗嗘灦鎵瑕嗙洊.涓轟簡(jiǎn)鏀瑰彉瀹㈡埛鍖虹殑鑳屾櫙鑹?浣犻渶瑕侀噸鐢昏繖涓鎴風(fēng)獥鍙?涓轟簡(jiǎn)鍋氬埌榪欑偣,浣犺澶勭悊娑堟伅WM_ERASEBKND浜х敓涓涓柊綾?浠嶤Wnd緇ф壙,濮戜笖縐頒箣涓篊MDIClient.緇欏畠鍔犱笂涓涓垚鍛樺彉閲?<br />#include "MDIClient.h"<br />class CMainFrame : public CMDIFrameWnd<br />{<br />...<br />protected:<br />CMDIClient m_wndMDIClient;<br />}<br />鍦–MainFrame涓噸杞紺MDIFrameWnd::OnCreateClient<br />BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)<br />{<br />聽聽聽聽if ( CMDIFrameWnd::OnCreateClient(lpcs, pContext) )<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽m_wndMDIClient.SubclassWindow(m_hWndMDIClient);<br />聽聽聽聽聽聽聽聽return TRUE;<br />聽聽聽聽}<br />聽聽聽聽else<br />聽聽聽聽聽聽聽聽return FALSE;<br />}<br />鐒跺悗灝卞彲浠ュ姞鍏ュ娑堟伅WM_ERASEBKGND鐨勫鐞嗕簡(jiǎn).<br /><br />(108)聽聽聽聽濡備綍灝嗗簲鐢ㄧ▼搴忕獥鍙g疆浜庡睆騫曟涓?</p><p>瑕佸皢浣犵殑搴旂敤紼嬪簭紿楀彛鏀劇疆鍦ㄥ睆騫曟涓ぎ,鍙』鍦∕ainFrame鐨凮nCreate鍑芥暟涓姞鍏?<br />CenterWindow( GetDesktopWindow() );</p></div> </div> </div> <img src ="http://m.shnenglu.com/zgysx/aggbug/16952.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zgysx/" target="_blank">warrior</a> 2006-12-28 17:54 <a href="http://m.shnenglu.com/zgysx/archive/2006/12/28/16952.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[杞琞windows娑堟伅澶у叏http://m.shnenglu.com/zgysx/archive/2006/12/28/16946.htmlwarriorwarriorThu, 28 Dec 2006 08:39:00 GMThttp://m.shnenglu.com/zgysx/archive/2006/12/28/16946.htmlhttp://m.shnenglu.com/zgysx/comments/16946.htmlhttp://m.shnenglu.com/zgysx/archive/2006/12/28/16946.html#Feedback0http://m.shnenglu.com/zgysx/comments/commentRss/16946.htmlhttp://m.shnenglu.com/zgysx/services/trackbacks/16946.html windows娑堟伅澶у叏

娑堟伅錛屽氨鏄寚Windows鍙戝嚭鐨勪竴涓氱煡錛屽憡璇夊簲鐢ㄧ▼搴忔煇涓簨鎯呭彂鐢熶簡(jiǎn)銆備緥濡傦紝鍗曞嚮榧犳爣銆佹敼鍙樼獥鍙e昂瀵搞佹寜涓嬮敭鐩樹笂鐨勪竴涓敭閮戒細(xì)浣縒indows鍙戦佷竴涓秷鎭粰搴旂敤紼嬪簭銆傛秷鎭湰韜槸浣滀負(fù)涓涓褰曚紶閫掔粰搴旂敤紼嬪簭鐨勶紝榪欎釜璁板綍涓寘鍚簡(jiǎn)娑堟伅鐨勭被鍨嬩互鍙?qiáng)鍏朵粬淇℃伅銆備緥濡傦紝瀵逛簬鍗曞嚮榧犳爣鎵浜х敓鐨勬秷鎭潵璇達(dá)紝榪欎釜璁板綍涓寘鍚簡(jiǎn)鍗曞嚮榧犳爣鏃剁殑鍧愭爣銆傝繖涓褰曠被鍨嬪彨鍋歍Msg錛?

瀹冨湪Windows鍗曞厓涓槸榪欐牱澹版槑鐨勶細(xì)

type

TMsg = packed record

hwnd: HWND; / /紿楀彛鍙ユ焺

message: UINT; / /娑堟伅甯擱噺鏍囪瘑絎?

wParam: WPARAM ; // 32浣嶆秷鎭殑鐗瑰畾闄勫姞淇℃伅

lParam: LPARAM ; // 32浣嶆秷鎭殑鐗瑰畾闄勫姞淇℃伅

time: DWORD; / /娑堟伅鍒涘緩鏃剁殑鏃墮棿

pt: TPoint; / /娑堟伅鍒涘緩鏃剁殑榧犳爣浣嶇疆

end;

娑堟伅涓湁浠涔堬紵

鏄惁瑙夊緱涓涓秷鎭褰曚腑鐨勪俊鎭儚甯岃厞璇竴鏍鳳紵濡傛灉鏄繖鏍鳳紝閭d箞鐪嬩竴鐪嬩笅闈㈢殑瑙i噴錛?

hwnd 32浣嶇殑紿楀彛鍙ユ焺銆傜獥鍙e彲浠ユ槸浠諱綍綾誨瀷鐨勫睆騫曞璞★紝鍥犱負(fù)Win32鑳藉緇存姢澶у鏁板彲瑙嗗璞$殑鍙ユ焺(紿楀彛銆佸璇濇銆佹寜閽佺紪杈戞絳?銆?

message 鐢ㄤ簬鍖哄埆鍏朵粬娑堟伅鐨勫父閲忓鹼紝榪欎簺甯擱噺鍙互鏄疻indows鍗曞厓涓瀹氫箟鐨勫父閲忥紝涔熷彲浠ユ槸鑷畾涔夌殑甯擱噺銆?

wParam 閫氬父鏄竴涓笌娑堟伅鏈夊叧鐨勫父閲忓鹼紝涔熷彲鑳芥槸紿楀彛鎴栨帶浠剁殑鍙ユ焺銆?

lParam 閫氬父鏄竴涓寚鍚戝唴瀛樹腑鏁版嵁鐨勬寚閽堛傜敱浜嶹 P a r a m銆乴 P a r a m鍜孭 o i n t e r閮芥槸3 2浣嶇殑錛?

鍥犳錛屽畠浠箣闂村彲浠ョ浉浜掕漿鎹€?

WM_NULL = $0000;

WM_CREATE = $0001;

搴旂敤紼嬪簭鍒涘緩涓涓獥鍙?

WM_DESTROY = $0002;

涓涓獥鍙h閿姣?

WM_MOVE = $0003;

縐誨姩涓涓獥鍙?

WM_SIZE = $0005;

鏀瑰彉涓涓獥鍙g殑澶у皬

WM_ACTIVATE = $0006;

涓涓獥鍙h嬋媧繪垨澶卞幓嬋媧葷姸鎬侊紱

WM_SETFOCUS = $0007;

鑾峰緱鐒︾偣鍚?

WM_KILLFOCUS = $0008;

澶卞幓鐒︾偣

WM_ENABLE = $000A;

鏀瑰彉enable鐘舵?

WM_SETREDRAW = $000B;

璁劇疆紿楀彛鏄惁鑳介噸鐢?

WM_SETTEXT = $000C;

搴旂敤紼嬪簭鍙戦佹娑堟伅鏉ヨ緗竴涓獥鍙g殑鏂囨湰

WM_GETTEXT = $000D;

搴旂敤紼嬪簭鍙戦佹娑堟伅鏉ュ鍒跺搴旂獥鍙g殑鏂囨湰鍒扮紦鍐插尯

WM_GETTEXTLENGTH = $000E;

寰楀埌涓庝竴涓獥鍙f湁鍏崇殑鏂囨湰鐨勯暱搴︼紙涓嶅寘鍚┖瀛楃錛?

WM_PAINT = $000F;

瑕佹眰涓涓獥鍙i噸鐢昏嚜宸?

WM_CLOSE = $0010;

褰撲竴涓獥鍙f垨搴旂敤紼嬪簭瑕佸叧闂椂鍙戦佷竴涓俊鍙?

WM_QUERYENDSESSION = $0011;

褰撶敤鎴烽夋嫨緇撴潫瀵硅瘽妗嗘垨紼嬪簭鑷繁璋冪敤ExitWindows鍑芥暟

WM_QUIT = $0012;

鐢ㄦ潵緇撴潫紼嬪簭榪愯鎴栧綋紼嬪簭璋冪敤postquitmessage鍑芥暟

WM_QUERYOPEN = $0013;

褰撶敤鎴風(fēng)獥鍙f仮澶嶄互鍓嶇殑澶у皬浣嶇疆鏃訛紝鎶婃娑堟伅鍙戦佺粰鏌愪釜鍥炬爣

WM_ERASEBKGND = $0014;

褰撶獥鍙h儗鏅繀欏昏鎿﹂櫎鏃訛紙渚嬪湪紿楀彛鏀瑰彉澶у皬鏃訛級(jí)

WM_SYSCOLORCHANGE = $0015;

褰撶郴緇熼鑹叉敼鍙樻椂錛屽彂閫佹娑堟伅緇欐墍鏈夐《綰х獥鍙?

WM_ENDSESSION = $0016;

褰撶郴緇熻繘紼嬪彂鍑篧M_QUERYENDSESSION娑堟伅鍚庯紝姝ゆ秷鎭彂閫佺粰搴旂敤紼嬪簭錛?

閫氱煡瀹冨璇濇槸鍚︾粨鏉?

WM_SYSTEMERROR = $0017;

WM_SHOWWINDOW = $0018;

褰撻殣钘忔垨鏄劇ず紿楀彛鏄彂閫佹娑堟伅緇欒繖涓獥鍙?

WM_ACTIVATEAPP = $001C;

鍙戞娑堟伅緇欏簲鐢ㄧ▼搴忓摢涓獥鍙f槸嬋媧葷殑錛屽摢涓槸闈炴縺媧葷殑錛?

WM_FONTCHANGE = $001D;

褰撶郴緇熺殑瀛椾綋璧勬簮搴撳彉鍖栨椂鍙戦佹娑堟伅緇欐墍鏈夐《綰х獥鍙?

WM_TIMECHANGE = $001E;

褰撶郴緇熺殑鏃墮棿鍙樺寲鏃跺彂閫佹娑堟伅緇欐墍鏈夐《綰х獥鍙?

WM_CANCELMODE = $001F;

鍙戦佹娑堟伅鏉ュ彇娑堟煇縐嶆鍦ㄨ繘琛岀殑鎽告侊紙鎿嶄綔錛?

WM_SETCURSOR = $0020;

濡傛灉榧犳爣寮曡搗鍏夋爣鍦ㄦ煇涓獥鍙d腑縐誨姩涓旈紶鏍囪緭鍏ユ病鏈夎鎹曡幏鏃訛紝灝卞彂娑堟伅緇欐煇涓獥鍙?

WM_MOUSEACTIVATE = $0021;

褰撳厜鏍囧湪鏌愪釜闈炴縺媧葷殑紿楀彛涓岀敤鎴鋒鎸夌潃榧犳爣鐨勬煇涓敭鍙戦佹娑堟伅緇欏綋鍓嶇獥鍙?

WM_CHILDACTIVATE = $0022;

鍙戦佹娑堟伅緇橫DI瀛愮獥鍙e綋鐢ㄦ埛鐐瑰嚮姝ょ獥鍙g殑鏍囬鏍忥紝鎴栧綋紿楀彛琚縺媧伙紝縐誨姩錛屾敼鍙樺ぇ灝?

WM_QUEUESYNC = $0023;

姝ゆ秷鎭敱鍩轟簬璁$畻鏈虹殑璁粌紼嬪簭鍙戦侊紝閫氳繃WH_JOURNALPALYBACK鐨刪ook紼嬪簭

鍒嗙鍑虹敤鎴瘋緭鍏ユ秷鎭?

WM_GETMINMAXINFO = $0024;

姝ゆ秷鎭彂閫佺粰紿楀彛褰撳畠?yōu)畣瑕佹敼鍙樺ぇ灏忔垨浣嵕|紱

WM_PAINTICON = $0026;

鍙戦佺粰鏈灝忓寲紿楀彛褰撳畠鍥炬爣灝嗚琚噸鐢?

WM_ICONERASEBKGND = $0027;

姝ゆ秷鎭彂閫佺粰鏌愪釜鏈灝忓寲紿楀彛錛屼粎褰撳畠鍦ㄧ敾鍥炬爣鍓嶅畠鐨勮儗鏅繀欏昏閲嶇敾

WM_NEXTDLGCTL = $0028;

鍙戦佹娑堟伅緇欎竴涓璇濇紼嬪簭鍘繪洿鏀圭劍鐐逛綅緗?

WM_SPOOLERSTATUS = $002A;

姣忓綋鎵撳嵃綆$悊鍒楅槦澧炲姞鎴栧噺灝戜竴鏉′綔涓氭椂鍙戝嚭姝ゆ秷鎭?

WM_DRAWITEM = $002B;

褰揵utton錛宑ombobox錛宭istbox錛宮enu鐨勫彲瑙嗗瑙傛敼鍙樻椂鍙戦?

姝ゆ秷鎭粰榪欎簺絀轟歡鐨勬墍鏈夎?

WM_MEASUREITEM = $002C;

褰揵utton, combo box, list box, list view control, or menu item 琚垱寤烘椂

鍙戦佹娑堟伅緇欐帶浠剁殑鎵鏈夎?

WM_DELETEITEM = $002D;

褰搕he list box 鎴?combo box 琚攢姣?鎴?褰?鏌愪簺欏硅鍒犻櫎閫氳繃LB_DELETESTRING, LB_RESETCONTENT, CB_DELETESTRING, or CB_RESETCONTENT 娑堟伅

WM_VKEYTOITEM = $002E;

姝ゆ秷鎭湁涓涓狶BS_WANTKEYBOARDINPUT椋庢牸鐨勫彂鍑虹粰瀹冪殑鎵鏈夎呮潵鍝嶅簲WM_KEYDOWN娑堟伅

WM_CHARTOITEM = $002F;

姝ゆ秷鎭敱涓涓狶BS_WANTKEYBOARDINPUT椋庢牸鐨勫垪琛ㄦ鍙戦佺粰浠栫殑鎵鏈夎呮潵鍝嶅簲WM_CHAR娑堟伅

WM_SETFONT = $0030;

褰撶粯鍒舵枃鏈椂紼嬪簭鍙戦佹娑堟伅寰楀埌鎺т歡瑕佺敤鐨勯鑹?

WM_GETFONT = $0031;

搴旂敤紼嬪簭鍙戦佹娑堟伅寰楀埌褰撳墠鎺т歡緇樺埗鏂囨湰鐨勫瓧浣?

WM_SETHOTKEY = $0032;

搴旂敤紼嬪簭鍙戦佹娑堟伅璁╀竴涓獥鍙d笌涓涓儹閿浉鍏寵繛

WM_GETHOTKEY = $0033;

搴旂敤紼嬪簭鍙戦佹娑堟伅鏉ュ垽鏂儹閿笌鏌愪釜紿楀彛鏄惁鏈夊叧鑱?

WM_QUERYDRAGICON = $0037;

姝ゆ秷鎭彂閫佺粰鏈灝忓寲紿楀彛錛屽綋姝ょ獥鍙e皢瑕佽鎷栨斁鑰屽畠鐨勭被涓病鏈夊畾涔夊浘鏍囷紝搴旂敤紼嬪簭鑳借繑鍥炰竴涓浘鏍囨垨鍏夋爣鐨勫彞鏌勶紝褰撶敤鎴鋒嫋鏀懼浘鏍囨椂緋葷粺鏄劇ず榪欎釜鍥炬爣鎴栧厜鏍?

WM_COMPAREITEM = $0039;

鍙戦佹娑堟伅鏉ュ垽瀹歝ombobox鎴杔istbox鏂板鍔犵殑欏圭殑鐩稿浣嶇疆

WM_GETOBJECT = $003D;

WM_COMPACTING = $0041;

鏄劇ず鍐呭瓨宸茬粡寰堝皯浜?

WM_WINDOWPOSCHANGING = $0046;

鍙戦佹娑堟伅緇欓偅涓獥鍙g殑澶у皬鍜屼綅緗皢瑕佽鏀瑰彉鏃訛紝鏉ヨ皟鐢╯etwindowpos鍑芥暟鎴栧叾瀹冪獥鍙g鐞嗗嚱鏁?

WM_WINDOWPOSCHANGED = $0047;

鍙戦佹娑堟伅緇欓偅涓獥鍙g殑澶у皬鍜屼綅緗凡緇忚鏀瑰彉鏃訛紝鏉ヨ皟鐢╯etwindowpos鍑芥暟鎴栧叾瀹冪獥鍙g鐞嗗嚱鏁?

WM_POWER = $0048;錛堥傜敤浜?6浣嶇殑windows錛?

褰撶郴緇熷皢瑕佽繘鍏ユ殏鍋滅姸鎬佹椂鍙戦佹娑堟伅

WM_COPYDATA = $004A;

褰撲竴涓簲鐢ㄧ▼搴忎紶閫掓暟鎹粰鍙︿竴涓簲鐢ㄧ▼搴忔椂鍙戦佹娑堟伅

WM_CANCELJOURNAL = $004B;

褰撴煇涓敤鎴峰彇娑堢▼搴忔棩蹇楁縺媧葷姸鎬侊紝鎻愪氦姝ゆ秷鎭粰紼嬪簭

WM_NOTIFY = $004E;

褰撴煇涓帶浠剁殑鏌愪釜浜嬩歡宸茬粡鍙戠敓鎴栬繖涓帶浠墮渶瑕佸緱鍒頒竴浜涗俊鎭椂錛屽彂閫佹娑堟伅緇欏畠鐨勭埗紿楀彛

WM_INPUTLANGCHANGEREQUEST = $0050;

褰撶敤鎴烽夋嫨鏌愮杈撳叆璇█錛屾垨杈撳叆璇█鐨勭儹閿敼鍙?

WM_INPUTLANGCHANGE = $0051;

褰撳鉤鍙扮幇鍦哄凡緇忚鏀瑰彉鍚庡彂閫佹娑堟伅緇欏彈褰卞搷鐨勬渶欏剁駭紿楀彛

WM_TCARD = $0052;

褰撶▼搴忓凡緇忓垵濮嬪寲windows甯姪渚嬬▼鏃跺彂閫佹娑堟伅緇欏簲鐢ㄧ▼搴?

WM_HELP = $0053;

姝ゆ秷鎭樉紺虹敤鎴鋒寜涓嬩簡(jiǎn)F1錛屽鏋滄煇涓彍鍗曟槸嬋媧葷殑錛屽氨鍙戦佹娑堟伅涓紿楀彛鍏寵仈鐨勮彍鍗曪紝鍚﹀垯灝?

鍙戦佺粰鏈夌劍鐐圭殑紿楀彛錛屽鏋滃綋鍓嶉兘娌℃湁鐒︾偣錛屽氨鎶婃娑堟伅鍙戦佺粰褰撳墠嬋媧葷殑紿楀彛

WM_USERCHANGED = $0054;

褰撶敤鎴峰凡緇忕櫥鍏ユ垨閫鍑哄悗鍙戦佹娑堟伅緇欐墍鏈夌殑紿楀彛錛屽綋鐢ㄦ埛鐧誨叆鎴栭鍑烘椂緋葷粺鏇存柊鐢ㄦ埛鐨勫叿浣?

璁劇疆淇℃伅錛屽湪鐢ㄦ埛鏇存柊璁劇疆鏃剁郴緇熼┈涓婂彂閫佹娑堟伅錛?

WM_NOTIFYFORMAT = $0055;

鍏敤鎺т歡錛岃嚜瀹氫箟鎺т歡鍜屼粬浠殑鐖剁獥鍙i氳繃姝ゆ秷鎭潵鍒ゆ柇鎺т歡鏄嬌鐢ˋNSI榪樻槸UNICODE緇撴瀯

鍦╓M_NOTIFY娑堟伅錛屼嬌鐢ㄦ鎺т歡鑳戒嬌鏌愪釜鎺т歡涓庡畠鐨勭埗鎺т歡涔嬮棿榪涜鐩鎬簰閫氫俊

WM_CONTEXTMENU = $007B;

褰撶敤鎴鋒煇涓獥鍙d腑鐐瑰嚮浜?jiǎn)涓涓嬪彸閿氨鍙戦佹娑堟伅緇欒繖涓獥鍙?

WM_STYLECHANGING = $007C;

褰撹皟鐢⊿ETWINDOWLONG鍑芥暟灝嗚鏀瑰彉涓涓垨澶氫釜 紿楀彛鐨勯鏍兼椂鍙戦佹娑堟伅緇欓偅涓獥鍙?

WM_STYLECHANGED = $007D;

褰撹皟鐢⊿ETWINDOWLONG鍑芥暟涓涓垨澶氫釜 紿楀彛鐨勯鏍煎悗鍙戦佹娑堟伅緇欓偅涓獥鍙?

WM_DISPLAYCHANGE = $007E;

褰撴樉紺哄櫒鐨勫垎杈ㄧ巼鏀瑰彉鍚庡彂閫佹娑堟伅緇欐墍鏈夌殑紿楀彛

WM_GETICON = $007F;

姝ゆ秷鎭彂閫佺粰鏌愪釜紿楀彛鏉ヨ繑鍥炰笌鏌愪釜紿楀彛鏈夊叧榪炵殑澶у浘鏍囨垨灝忓浘鏍囩殑鍙ユ焺錛?

WM_SETICON = $0080;

紼嬪簭鍙戦佹娑堟伅璁╀竴涓柊鐨勫ぇ鍥炬爣鎴栧皬鍥炬爣涓庢煇涓獥鍙e叧鑱旓紱

WM_NCCREATE = $0081;

褰撴煇涓獥鍙g涓嬈¤鍒涘緩鏃訛紝姝ゆ秷鎭湪WM_CREATE娑堟伅鍙戦佸墠鍙戦侊紱

WM_NCDESTROY = $0082;

姝ゆ秷鎭氱煡鏌愪釜紿楀彛錛岄潪瀹㈡埛鍖烘鍦ㄩ攢姣?

WM_NCCALCSIZE = $0083;

褰撴煇涓獥鍙g殑瀹㈡埛鍖哄煙蹇呴』琚牳綆楁椂鍙戦佹娑堟伅

WM_NCHITTEST = $0084;//縐誨姩榧犳爣錛屾寜浣忔垨閲婃斁榧犳爣鏃跺彂鐢?

WM_NCPAINT = $0085;

紼嬪簭鍙戦佹娑堟伅緇欐煇涓獥鍙e綋瀹冿紙紿楀彛錛夌殑妗嗘灦蹇呴』琚粯鍒舵椂錛?

WM_NCACTIVATE = $0086;

姝ゆ秷鎭彂閫佺粰鏌愪釜紿楀彛 浠呭綋瀹冪殑闈炲鎴峰尯闇瑕佽鏀瑰彉鏉ユ樉紺烘槸嬋媧昏繕鏄潪嬋媧葷姸鎬侊紱

WM_GETDLGCODE = $0087;

鍙戦佹娑堟伅緇欐煇涓笌瀵硅瘽妗嗙▼搴忓叧鑱旂殑鎺т歡錛寃iddows鎺у埗鏂逛綅閿拰TAB閿嬌杈撳叆榪涘叆姝ゆ帶浠?

閫氳繃鍝嶅簲WM_GETDLGCODE娑堟伅錛屽簲鐢ㄧ▼搴忓彲浠ユ妸浠栧綋鎴愪竴涓壒孌婄殑杈撳叆鎺т歡騫惰兘澶勭悊瀹?

WM_NCMOUSEMOVE = $00A0;

褰撳厜鏍囧湪涓涓獥鍙g殑闈炲鎴峰尯鍐呯Щ鍔ㄦ椂鍙戦佹娑堟伅緇欒繖涓獥鍙?//闈炲鎴峰尯涓猴細(xì)紿椾綋鐨勬爣棰樻爮鍙?qiáng)绐?

鐨勮竟妗嗕綋

WM_NCLBUTTONDOWN = $00A1;

褰撳厜鏍囧湪涓涓獥鍙g殑闈炲鎴峰尯鍚屾椂鎸変笅榧犳爣宸﹂敭鏃舵彁浜ゆ娑堟伅

WM_NCLBUTTONUP = $00A2;

褰撶敤鎴烽噴鏀鵑紶鏍囧乏閿悓鏃跺厜鏍囨煇涓獥鍙e湪闈炲鎴峰尯鍗佸彂閫佹娑堟伅錛?

WM_NCLBUTTONDBLCLK = $00A3;

褰撶敤鎴峰弻鍑婚紶鏍囧乏閿悓鏃跺厜鏍囨煇涓獥鍙e湪闈炲鎴峰尯鍗佸彂閫佹娑堟伅

WM_NCRBUTTONDOWN = $00A4;

褰撶敤鎴鋒寜涓嬮紶鏍囧彸閿悓鏃跺厜鏍囧張鍦ㄧ獥鍙g殑闈炲鎴峰尯鏃跺彂閫佹娑堟伅

WM_NCRBUTTONUP = $00A5;

褰撶敤鎴烽噴鏀鵑紶鏍囧彸閿悓鏃跺厜鏍囧張鍦ㄧ獥鍙g殑闈炲鎴峰尯鏃跺彂閫佹娑堟伅

WM_NCRBUTTONDBLCLK = $00A6;

褰撶敤鎴峰弻鍑婚紶鏍囧彸閿悓鏃跺厜鏍囨煇涓獥鍙e湪闈炲鎴峰尯鍗佸彂閫佹娑堟伅

WM_NCMBUTTONDOWN = $00A7;

褰撶敤鎴鋒寜涓嬮紶鏍囦腑閿悓鏃跺厜鏍囧張鍦ㄧ獥鍙g殑闈炲鎴峰尯鏃跺彂閫佹娑堟伅

WM_NCMBUTTONUP = $00A8;

褰撶敤鎴烽噴鏀鵑紶鏍囦腑閿悓鏃跺厜鏍囧張鍦ㄧ獥鍙g殑闈炲鎴峰尯鏃跺彂閫佹娑堟伅

WM_NCMBUTTONDBLCLK = $00A9;

褰撶敤鎴峰弻鍑婚紶鏍囦腑閿悓鏃跺厜鏍囧張鍦ㄧ獥鍙g殑闈炲鎴峰尯鏃跺彂閫佹娑堟伅

WM_KEYFIRST = $0100;

WM_KEYDOWN = $0100;

//鎸変笅涓涓敭

WM_KEYUP = $0101;

//閲婃斁涓涓敭

WM_CHAR = $0102;

//鎸変笅鏌愰敭錛屽茍宸插彂鍑篧M_KEYDOWN錛?WM_KEYUP娑堟伅

WM_DEADCHAR = $0103;

褰撶敤translatemessage鍑芥暟緲昏瘧WM_KEYUP娑堟伅鏃跺彂閫佹娑堟伅緇欐嫢鏈夌劍鐐圭殑紿楀彛

WM_SYSKEYDOWN = $0104;

褰撶敤鎴鋒寜浣廇LT閿悓鏃舵寜涓嬪叾瀹冮敭鏃舵彁浜ゆ娑堟伅緇欐嫢鏈夌劍鐐圭殑紿楀彛錛?

WM_SYSKEYUP = $0105;

褰撶敤鎴烽噴鏀句竴涓敭鍚屾椂ALT 閿繕鎸夌潃鏃舵彁浜ゆ娑堟伅緇欐嫢鏈夌劍鐐圭殑紿楀彛

WM_SYSCHAR = $0106;

褰揥M_SYSKEYDOWN娑堟伅琚玊RANSLATEMESSAGE鍑芥暟緲昏瘧鍚庢彁浜ゆ娑堟伅緇欐嫢鏈夌劍鐐圭殑紿楀彛

WM_SYSDEADCHAR = $0107;

褰揥M_SYSKEYDOWN娑堟伅琚玊RANSLATEMESSAGE鍑芥暟緲昏瘧鍚庡彂閫佹娑堟伅緇欐嫢鏈夌劍鐐圭殑紿楀彛

WM_KEYLAST = $0108;

WM_INITDIALOG = $0110;

鍦ㄤ竴涓璇濇紼嬪簭琚樉紺哄墠鍙戦佹娑堟伅緇欏畠錛岄氬父鐢ㄦ娑堟伅鍒濆鍖栨帶浠跺拰鎵ц鍏跺畠浠誨姟

WM_COMMAND = $0111;

褰撶敤鎴烽夋嫨涓鏉¤彍鍗曞懡浠ら」鎴栧綋鏌愪釜鎺т歡鍙戦佷竴鏉℃秷鎭粰瀹冪殑鐖剁獥鍙o紝涓涓揩鎹烽敭琚炕璇?

WM_SYSCOMMAND = $0112;

褰撶敤鎴烽夋嫨紿楀彛鑿滃崟鐨勪竴鏉″懡浠ゆ垨褰撶敤鎴烽夋嫨鏈澶у寲鎴栨渶灝忓寲鏃墮偅涓獥鍙d細(xì)鏀跺埌姝ゆ秷鎭?

WM_TIMER = $0113; //鍙戠敓浜?jiǎn)瀹氭椂鍣ㄤ簨錃g

WM_HSCROLL = $0114;

褰撲竴涓獥鍙f爣鍑嗘按騫蟲粴鍔ㄦ潯浜х敓涓涓粴鍔ㄤ簨浠舵椂鍙戦佹娑堟伅緇欓偅涓獥鍙o紝涔熷彂閫佺粰鎷ユ湁瀹冪殑鎺т歡

WM_VSCROLL = $0115;

褰撲竴涓獥鍙f爣鍑嗗瀭鐩存粴鍔ㄦ潯浜х敓涓涓粴鍔ㄤ簨浠舵椂鍙戦佹娑堟伅緇欓偅涓獥鍙d篃錛屽彂閫佺粰鎷ユ湁瀹冪殑鎺т歡 WM_INITMENU = $0116;

褰撲竴涓彍鍗曞皢瑕佽嬋媧繪椂鍙戦佹娑堟伅錛屽畠鍙戠敓鍦ㄧ敤鎴瘋彍鍗曟潯涓殑鏌愰」鎴栨寜涓嬫煇涓彍鍗曢敭錛屽畠鍏佽紼嬪簭鍦ㄦ樉紺哄墠鏇存敼鑿滃崟

WM_INITMENUPOPUP = $0117;

褰撲竴涓笅鎷夎彍鍗曟垨瀛愯彍鍗曞皢瑕佽嬋媧繪椂鍙戦佹娑堟伅錛屽畠鍏佽紼嬪簭鍦ㄥ畠鏄劇ず鍓嶆洿鏀硅彍鍗曪紝鑰屼笉瑕佹敼鍙樺叏閮?

WM_MENUSELECT = $011F;

褰撶敤鎴烽夋嫨涓鏉¤彍鍗曢」鏃跺彂閫佹娑堟伅緇欒彍鍗曠殑鎵鏈夎咃紙涓鑸槸紿楀彛錛?

WM_MENUCHAR = $0120;

褰撹彍鍗曞凡琚縺媧葷敤鎴鋒寜涓嬩簡(jiǎn)鏌愪釜閿紙涓嶅悓浜庡姞閫熼敭錛夛紝鍙戦佹娑堟伅緇欒彍鍗曠殑鎵鏈夎咃紱

WM_ENTERIDLE = $0121;

褰撲竴涓ā鎬佸璇濇鎴栬彍鍗曡繘鍏ョ┖杞界姸鎬佹椂鍙戦佹娑堟伅緇欏畠鐨勬墍鏈夎咃紝涓涓ā鎬佸璇濇鎴栬彍鍗曡繘鍏ョ┖杞界姸鎬佸氨鏄湪澶勭悊瀹屼竴鏉℃垨鍑犳潯鍏堝墠鐨勬秷鎭悗娌℃湁娑堟伅瀹冪殑鍒楅槦涓瓑寰?

WM_MENURBUTTONUP = $0122;

WM_MENUDRAG = $0123;

WM_MENUGETOBJECT = $0124;

WM_UNINITMENUPOPUP = $0125;

WM_MENUCOMMAND = $0126;

WM_CHANGEUISTATE = $0127;

WM_UPDATEUISTATE = $0128;

WM_QUERYUISTATE = $0129;

WM_CTLCOLORMSGBOX = $0132;

鍦╳indows緇樺埗娑堟伅妗嗗墠鍙戦佹娑堟伅緇欐秷鎭鐨勬墍鏈夎呯獥鍙o紝閫氳繃鍝嶅簲榪欐潯娑堟伅錛屾墍鏈夎呯獥鍙e彲浠ラ氳繃浣跨敤緇欏畾鐨勭浉鍏蟲樉紺鴻澶囩殑鍙ユ焺鏉ヨ緗秷鎭鐨勬枃鏈拰鑳屾櫙棰滆壊

WM_CTLCOLOREDIT = $0133;

褰撲竴涓紪杈戝瀷鎺т歡灝嗚琚粯鍒舵椂鍙戦佹娑堟伅緇欏畠鐨勭埗紿楀彛錛涢氳繃鍝嶅簲榪欐潯娑堟伅錛屾墍鏈夎呯獥鍙e彲浠ラ氳繃浣跨敤緇欏畾鐨勭浉鍏蟲樉紺鴻澶囩殑鍙ユ焺鏉ヨ緗紪杈戞鐨勬枃鏈拰鑳屾櫙棰滆壊

WM_CTLCOLORLISTBOX = $0134;

褰撲竴涓垪琛ㄦ鎺т歡灝嗚琚粯鍒跺墠鍙戦佹娑堟伅緇欏畠鐨勭埗紿楀彛錛涢氳繃鍝嶅簲榪欐潯娑堟伅錛屾墍鏈夎呯獥鍙e彲浠ラ氳繃浣跨敤緇欏畾鐨勭浉鍏蟲樉紺鴻澶囩殑鍙ユ焺鏉ヨ緗垪琛ㄦ鐨勬枃鏈拰鑳屾櫙棰滆壊

WM_CTLCOLORBTN = $0135;

褰撲竴涓寜閽帶浠跺皢瑕佽緇樺埗鏃跺彂閫佹娑堟伅緇欏畠鐨勭埗紿楀彛錛涢氳繃鍝嶅簲榪欐潯娑堟伅錛屾墍鏈夎呯獥鍙e彲浠ラ氳繃浣跨敤緇欏畾鐨勭浉鍏蟲樉紺鴻澶囩殑鍙ユ焺鏉ヨ緗寜綰界殑鏂囨湰鍜岃儗鏅鑹?

WM_CTLCOLORDLG = $0136;

褰撲竴涓璇濇鎺т歡灝嗚琚粯鍒跺墠鍙戦佹娑堟伅緇欏畠鐨勭埗紿楀彛錛涢氳繃鍝嶅簲榪欐潯娑堟伅錛屾墍鏈夎呯獥鍙e彲浠ラ氳繃浣跨敤緇欏畾鐨勭浉鍏蟲樉紺鴻澶囩殑鍙ユ焺鏉ヨ緗璇濇鐨勬枃鏈儗鏅鑹?

WM_CTLCOLORSCROLLBAR= $0137;

褰撲竴涓粴鍔ㄦ潯鎺т歡灝嗚琚粯鍒舵椂鍙戦佹娑堟伅緇欏畠鐨勭埗紿楀彛錛涢氳繃鍝嶅簲榪欐潯娑堟伅錛屾墍鏈夎呯獥鍙e彲浠ラ氳繃浣跨敤緇欏畾鐨勭浉鍏蟲樉紺鴻澶囩殑鍙ユ焺鏉ヨ緗粴鍔ㄦ潯鐨勮儗鏅鑹?

WM_CTLCOLORSTATIC = $0138;

褰撲竴涓潤(rùn)鎬佹帶浠跺皢瑕佽緇樺埗鏃跺彂閫佹娑堟伅緇欏畠鐨勭埗紿楀彛錛涢氳繃鍝嶅簲榪欐潯娑堟伅錛屾墍鏈夎呯獥鍙e彲浠ラ氳繃浣跨敤緇欏畾鐨勭浉鍏蟲樉紺鴻澶囩殑鍙ユ焺鏉ヨ緗潤(rùn)鎬佹帶浠剁殑鏂囨湰鍜岃儗鏅鑹?

WM_MOUSEFIRST = $0200;

WM_MOUSEMOVE = $0200;

// 縐誨姩榧犳爣

WM_LBUTTONDOWN = $0201;

//鎸変笅榧犳爣宸﹂敭

WM_LBUTTONUP = $0202;

//閲婃斁榧犳爣宸﹂敭

WM_LBUTTONDBLCLK = $0203;

//鍙屽嚮榧犳爣宸﹂敭

WM_RBUTTONDOWN = $0204;

//鎸変笅榧犳爣鍙抽敭

WM_RBUTTONUP = $0205;

//閲婃斁榧犳爣鍙抽敭

WM_RBUTTONDBLCLK = $0206;

//鍙屽嚮榧犳爣鍙抽敭

WM_MBUTTONDOWN = $0207;

//鎸変笅榧犳爣涓敭

WM_MBUTTONUP = $0208;

//閲婃斁榧犳爣涓敭

WM_MBUTTONDBLCLK = $0209;

//鍙屽嚮榧犳爣涓敭

WM_MOUSEWHEEL = $020A;

褰撻紶鏍囪疆瀛愯漿鍔ㄦ椂鍙戦佹娑堟伅涓綋鍓嶆湁鐒︾偣鐨勬帶浠?

WM_MOUSELAST = $020A;

WM_PARENTNOTIFY = $0210;

褰揗DI瀛愮獥鍙h鍒涘緩鎴栬閿姣侊紝鎴栫敤鎴鋒寜浜?jiǎn)涓涓嬮紶鏍囬敭鑰屽厜鏍囧湪瀛愮獥鍙d笂鏃跺彂閫佹娑堟伅緇欏畠鐨勭埗紿楀彛

WM_ENTERMENULOOP = $0211;

鍙戦佹娑堟伅閫氱煡搴旂敤紼嬪簭鐨勪富紿楀彛that宸茬粡榪涘叆浜?jiǎn)鑿滃崟弩@鐜ā寮?

WM_EXITMENULOOP = $0212;

鍙戦佹娑堟伅閫氱煡搴旂敤紼嬪簭鐨勪富紿楀彛that宸查鍑轟簡(jiǎn)鑿滃崟寰幆妯″紡

WM_NEXTMENU = $0213;

WM_SIZING = 532;

褰撶敤鎴鋒鍦ㄨ皟鏁寸獥鍙eぇ灝忔椂鍙戦佹娑堟伅緇欑獥鍙o紱閫氳繃姝ゆ秷鎭簲鐢ㄧ▼搴忓彲浠ョ洃瑙嗙獥鍙eぇ灝忓拰浣嶇疆涔熷彲浠ヤ慨鏀逛粬浠?

WM_CAPTURECHANGED = 533;

鍙戦佹娑堟伅 緇欑獥鍙e綋瀹冨け鍘繪崟鑾風(fēng)殑榧犳爣鏃訛紱

WM_MOVING = 534;

褰撶敤鎴峰湪縐誨姩紿楀彛鏃跺彂閫佹娑堟伅錛岄氳繃姝ゆ秷鎭簲鐢ㄧ▼搴忓彲浠ョ洃瑙嗙獥鍙eぇ灝忓拰浣嶇疆涔熷彲浠ヤ慨鏀逛粬浠紱

WM_POWERBROADCAST = 536;

姝ゆ秷鎭彂閫佺粰搴旂敤紼嬪簭鏉ラ氱煡瀹冩湁鍏崇數(shù)婧愮鐞嗕簨浠訛紱

WM_DEVICECHANGE = 537;

褰撹澶囩殑紜歡閰嶇疆鏀瑰彉鏃跺彂閫佹娑堟伅緇欏簲鐢ㄧ▼搴忔垨璁懼椹卞姩紼嬪簭

WM_IME_STARTCOMPOSITION = $010D;

WM_IME_ENDCOMPOSITION = $010E;

WM_IME_COMPOSITION = $010F;

WM_IME_KEYLAST = $010F;

WM_IME_SETCONTEXT = $0281;

WM_IME_NOTIFY = $0282;

WM_IME_CONTROL = $0283;

WM_IME_COMPOSITIONFULL = $0284;

WM_IME_SELECT = $0285;

WM_IME_CHAR = $0286;

WM_IME_REQUEST = $0288;

WM_IME_KEYDOWN = $0290;

WM_IME_KEYUP = $0291;

WM_MDICREATE = $0220;

搴旂敤紼嬪簭鍙戦佹娑堟伅緇欏鏂囨。鐨勫鎴風(fēng)獥鍙f潵鍒涘緩涓涓狹DI 瀛愮獥鍙?

WM_MDIDESTROY = $0221;

搴旂敤紼嬪簭鍙戦佹娑堟伅緇欏鏂囨。鐨勫鎴風(fēng)獥鍙f潵鍏抽棴涓涓狹DI 瀛愮獥鍙?

WM_MDIACTIVATE = $0222;

搴旂敤紼嬪簭鍙戦佹娑堟伅緇欏鏂囨。鐨勫鎴風(fēng)獥鍙i氱煡瀹㈡埛紿楀彛嬋媧誨彟涓涓狹DI瀛愮獥鍙o紝褰撳鎴風(fēng)獥鍙f敹鍒版娑堟伅鍚庯紝瀹冨彂鍑篧M_MDIACTIVE娑堟伅緇橫DI瀛愮獥鍙o紙鏈縺媧伙級(jí)嬋媧誨畠錛?

WM_MDIRESTORE = $0223;

紼嬪簭 鍙戦佹娑堟伅緇橫DI瀹㈡埛紿楀彛璁╁瓙紿楀彛浠庢渶澶ф渶灝忓寲鎭㈠鍒板師鏉ュぇ灝?

WM_MDINEXT = $0224;

紼嬪簭 鍙戦佹娑堟伅緇橫DI瀹㈡埛紿楀彛嬋媧諱笅涓涓垨鍓嶄竴涓獥鍙?

WM_MDIMAXIMIZE = $0225;

紼嬪簭鍙戦佹娑堟伅緇橫DI瀹㈡埛紿楀彛鏉ユ渶澶у寲涓涓狹DI瀛愮獥鍙o紱

WM_MDITILE = $0226;

紼嬪簭 鍙戦佹娑堟伅緇橫DI瀹㈡埛紿楀彛浠ュ鉤閾烘柟寮忛噸鏂版帓鍒楁墍鏈塎DI瀛愮獥鍙?

WM_MDICASCADE = $0227;

紼嬪簭 鍙戦佹娑堟伅緇橫DI瀹㈡埛紿楀彛浠ュ眰鍙犳柟寮忛噸鏂版帓鍒楁墍鏈塎DI瀛愮獥鍙?

WM_MDIICONARRANGE = $0228;

紼嬪簭 鍙戦佹娑堟伅緇橫DI瀹㈡埛紿楀彛閲嶆柊鎺掑垪鎵鏈夋渶灝忓寲鐨凪DI瀛愮獥鍙?

WM_MDIGETACTIVE = $0229;

紼嬪簭 鍙戦佹娑堟伅緇橫DI瀹㈡埛紿楀彛鏉ユ壘鍒版縺媧葷殑瀛愮獥鍙g殑鍙ユ焺

WM_MDISETMENU = $0230;

紼嬪簭 鍙戦佹娑堟伅緇橫DI瀹㈡埛紿楀彛鐢∕DI鑿滃崟浠f浛瀛愮獥鍙g殑鑿滃崟

WM_ENTERSIZEMOVE = $0231;

WM_EXITSIZEMOVE = $0232;

WM_DROPFILES = $0233;

WM_MDIREFRESHMENU = $0234;

WM_MOUSEHOVER = $02A1;

WM_MOUSELEAVE = $02A3;

WM_CUT = $0300;

紼嬪簭鍙戦佹娑堟伅緇欎竴涓紪杈戞鎴朿ombobox鏉ュ垹闄ゅ綋鍓嶉夋嫨鐨勬枃鏈?

WM_COPY = $0301;

紼嬪簭鍙戦佹娑堟伅緇欎竴涓紪杈戞鎴朿ombobox鏉ュ鍒跺綋鍓嶉夋嫨鐨勬枃鏈埌鍓創(chuàng)鏉?

WM_PASTE = $0302;

紼嬪簭鍙戦佹娑堟伅緇檈ditcontrol鎴朿ombobox浠庡壀璐存澘涓緱鍒版暟鎹?

WM_CLEAR = $0303;

紼嬪簭鍙戦佹娑堟伅緇檈ditcontrol鎴朿ombobox娓呴櫎褰撳墠閫夋嫨鐨勫唴瀹癸紱

WM_UNDO = $0304;

紼嬪簭鍙戦佹娑堟伅緇檈ditcontrol鎴朿ombobox鎾ゆ秷鏈鍚庝竴嬈℃搷浣?

WM_RENDERFORMAT = $0305錛?

WM_RENDERALLFORMATS = $0306;

WM_DESTROYCLIPBOARD = $0307;

褰撹皟鐢‥NPTYCLIPBOARD鍑芥暟鏃?鍙戦佹娑堟伅緇欏壀璐存澘鐨勬墍鏈夎?

WM_DRAWCLIPBOARD = $0308;

褰撳壀璐存澘鐨勫唴瀹瑰彉鍖栨椂鍙戦佹娑堟伅緇欏壀璐存澘瑙傚療閾劇殑絎竴涓獥鍙o紱瀹冨厑璁哥敤鍓創(chuàng)鏉胯瀵熺獥鍙f潵

鏄劇ず鍓創(chuàng)鏉跨殑鏂板唴瀹癸紱

WM_PAINTCLIPBOARD = $0309;

褰撳壀璐存澘鍖呭惈CF_OWNERDIPLAY鏍煎紡鐨勬暟鎹茍涓斿壀璐存澘瑙傚療紿楀彛鐨勫鎴峰尯闇瑕侀噸鐢伙紱

WM_VSCROLLCLIPBOARD = $030A;

WM_SIZECLIPBOARD = $030B;

褰撳壀璐存澘鍖呭惈CF_OWNERDIPLAY鏍煎紡鐨勬暟鎹茍涓斿壀璐存澘瑙傚療紿楀彛鐨勫鎴峰尯鍩熺殑澶у皬宸茬粡鏀瑰彉鏄娑堟伅閫氳繃鍓創(chuàng)鏉胯瀵熺獥鍙e彂閫佺粰鍓創(chuàng)鏉跨殑鎵鏈夎咃紱

WM_ASKCBFORMATNAME = $030C;

閫氳繃鍓創(chuàng)鏉胯瀵熺獥鍙e彂閫佹娑堟伅緇欏壀璐存澘鐨勬墍鏈夎呮潵璇鋒眰涓涓狢F_OWNERDISPLAY鏍煎紡鐨勫壀璐存澘鐨勫悕瀛?

WM_CHANGECBCHAIN = $030D;

褰撲竴涓獥鍙d粠鍓創(chuàng)鏉胯瀵熼摼涓Щ鍘繪椂鍙戦佹娑堟伅緇欏壀璐存澘瑙傚療閾劇殑絎竴涓獥鍙o紱

WM_HSCROLLCLIPBOARD = $030E;

姝ゆ秷鎭氳繃涓涓壀璐存澘瑙傚療紿楀彛鍙戦佺粰鍓創(chuàng)鏉跨殑鎵鏈夎?錛涘畠鍙戠敓鍦ㄥ綋鍓創(chuàng)鏉垮寘鍚獵FOWNERDISPALY鏍煎紡鐨勬暟鎹茍涓旀湁涓簨浠跺湪鍓創(chuàng)鏉胯瀵熺獥鐨勬按騫蟲粴鍔ㄦ潯涓婏紱鎵鏈夎呭簲婊氬姩鍓創(chuàng)鏉垮浘璞″茍鏇存柊婊氬姩鏉$殑鍊鹼紱

WM_QUERYNEWPALETTE = $030F;

姝ゆ秷鎭彂閫佺粰灝嗚鏀跺埌鐒︾偣鐨勭獥鍙o紝姝ゆ秷鎭兘浣跨獥鍙e湪鏀跺埌鐒︾偣鏃跺悓鏃舵湁鏈轟細(xì)瀹炵幇浠栫殑閫昏緫璋冭壊鏉?

WM_PALETTEISCHANGING= $0310;

褰撲竴涓簲鐢ㄧ▼搴忔瑕佸疄鐜板畠鐨勯昏緫璋冭壊鏉挎椂鍙戞娑堟伅閫氱煡鎵鏈夌殑搴旂敤紼嬪簭

WM_PALETTECHANGED = $0311;

姝ゆ秷鎭湪涓涓嫢鏈夌劍鐐圭殑紿楀彛瀹炵幇瀹冪殑閫昏緫璋冭壊鏉垮悗鍙戦佹娑堟伅緇欐墍鏈夐《綰у茍閲嶅彔鐨勭獥鍙o紝浠ユ鏉ユ敼鍙樼郴緇熻皟鑹叉澘

WM_HOTKEY = $0312;

褰撶敤鎴鋒寜涓嬬敱REGISTERHOTKEY鍑芥暟娉ㄥ唽鐨勭儹閿椂鎻愪氦姝ゆ秷鎭?

WM_PRINT = 791;

搴旂敤紼嬪簭鍙戦佹娑堟伅浠呭綋WINDOWS鎴栧叾瀹冨簲鐢ㄧ▼搴忓彂鍑轟竴涓姹傝姹傜粯鍒朵竴涓簲鐢ㄧ▼搴忕殑涓閮ㄥ垎錛?

WM_PRINTCLIENT = 792;

WM_HANDHELDFIRST = 856;

WM_HANDHELDLAST = 863;

WM_PENWINFIRST = $0380;

WM_PENWINLAST = $038F;

WM_COALESCE_FIRST = $0390;

WM_COALESCE_LAST = $039F;

WM_DDE_FIRST = $03E0;

WM_DDE_INITIATE = WM_DDE_FIRST + 0;

涓涓狣DE瀹㈡埛紼嬪簭鎻愪氦姝ゆ秷鎭紑濮嬩竴涓笌鏈嶅姟鍣ㄧ▼搴忕殑浼?xì)璇濇潵鍝嶅簲閭d釜鎸囧畾鐨劷E嬪簭鍜屼富棰樺悕錛?

WM_DDE_TERMINATE = WM_DDE_FIRST + 1;

涓涓狣DE搴旂敤紼嬪簭錛堟棤璁烘槸瀹㈡埛榪樻槸鏈嶅姟鍣級(jí)鎻愪氦姝ゆ秷鎭潵緇堟涓涓細(xì)璇濓紱

WM_DDE_ADVISE = WM_DDE_FIRST + 2;

涓涓狣DE瀹㈡埛紼嬪簭鎻愪氦姝ゆ秷鎭粰涓涓狣DE鏈嶅姟紼嬪簭鏉ヨ姹傛湇鍔″櫒姣忓綋鏁版嵁欏規(guī)敼鍙樻椂鏇存柊瀹?

WM_DDE_UNADVISE = WM_DDE_FIRST + 3;

涓涓狣DE瀹㈡埛紼嬪簭閫氳繃姝ゆ秷鎭氱煡涓涓狣DE鏈嶅姟紼嬪簭涓嶆洿鏂版寚瀹氱殑欏規(guī)垨涓涓壒孌婄殑鍓創(chuàng)鏉挎牸寮忕殑欏?

WM_DDE_ACK = WM_DDE_FIRST + 4;

姝ゆ秷鎭氱煡涓涓狣DE錛堝姩鎬佹暟鎹氦鎹級(jí)紼嬪簭宸叉敹鍒板茍姝e湪澶勭悊WM_DDE_POKE, WM_DDE_EXECUTE, WM_DDE_DATA, WM_DDE_ADVISE, WM_DDE_UNADVISE, or WM_DDE_INITIAT娑堟伅

WM_DDE_DATA = WM_DDE_FIRST + 5;

涓涓狣DE鏈嶅姟紼嬪簭鎻愪氦姝ゆ秷鎭粰DDE瀹㈡埛紼嬪簭鏉ヤ紶閫掍釜涓鏁版嵁欏圭粰瀹㈡埛鎴栭氱煡瀹㈡埛鐨勪竴鏉″彲鐢ㄦ暟鎹」

WM_DDE_REQUEST = WM_DDE_FIRST + 6;

涓涓狣DE瀹㈡埛紼嬪簭鎻愪氦姝ゆ秷鎭粰涓涓狣DE鏈嶅姟紼嬪簭鏉ヨ姹備竴涓暟鎹」鐨勫鹼紱

WM_DDE_POKE = WM_DDE_FIRST + 7;

涓涓狣DE瀹㈡埛紼嬪簭鎻愪氦姝ゆ秷鎭粰涓涓狣DE鏈嶅姟紼嬪簭錛屽鎴蜂嬌鐢ㄦ娑堟伅鏉ヨ姹傛湇鍔″櫒鎺ユ敹涓涓湭緇忓悓鎰忕殑鏁版嵁欏癸紱鏈嶅姟鍣ㄩ氳繃絳斿WM_DDE_ACK娑堟伅鎻愮ず鏄惁瀹冩帴鏀惰繖涓暟鎹」錛?

WM_DDE_EXECUTE = WM_DDE_FIRST + 8;

涓涓狣DE瀹㈡埛紼嬪簭鎻愪氦姝ゆ秷鎭粰涓涓狣DE鏈嶅姟紼嬪簭鏉ュ彂閫佷竴涓瓧絎︿覆緇欐湇鍔″櫒璁╁畠璞′覆琛屽懡浠や竴鏍瘋澶勭悊錛屾湇鍔″櫒閫氳繃鎻愪氦WM_DDE_ACK娑堟伅鏉ヤ綔鍥炲簲錛?

WM_DDE_LAST = WM_DDE_FIRST + 8;

WM_APP = $8000;

WM_USER = $0400;

姝ゆ秷鎭兘甯姪搴旂敤紼嬪簭鑷畾涔夌鏈夋秷鎭紱

/////////////////////////////////////////////////////////////////////

閫氱煡娑堟伅(Notification message)鏄寚榪欐牱涓縐嶆秷鎭紝涓涓獥鍙e唴鐨勫瓙鎺т歡鍙戠敓浜?jiǎn)涓浜涗簨鎯咃紝闇瑕侀氱煡鐖剁獥鍙c傞氱煡娑堟伅鍙傜敤浜庢爣鍑嗙殑紿楀彛鎺т歡濡傛寜閽佸垪琛ㄦ銆佺粍鍚堟銆佺紪杈戞錛屼互鍙?qiáng)Windows 95鍏叡鎺т歡濡傛爲(wèi)鐘惰鍥俱佸垪琛ㄨ鍥劇瓑銆備緥濡傦紝鍗曞嚮鎴栧弻鍑諱竴涓帶浠躲佸湪鎺т歡涓夋嫨閮ㄥ垎鏂囨湰銆佹搷浣滄帶浠剁殑婊氬姩鏉¢兘浼?xì)漶旂敓閫氱煡娑堟伅銆?

鎸夋壄

B N _ C L I C K E D //鐢ㄦ埛鍗曞嚮浜?jiǎn)鎸夐?

B N _ D I S A B L E //鎸夐挳琚姝?

B N _ D O U B L E C L I C K E D //鐢ㄦ埛鍙屽嚮浜?jiǎn)鎸夐?

B N _ H I L I T E //鐢ㄦ埛鍔犱寒浜?jiǎn)鎸夐?

B N _ PA I N T鎸夐挳搴斿綋閲嶇敾

B N _ U N H I L I T E鍔犱寒搴斿綋鍘繪帀

緇勫悎妗?

C B N _ C L O S E U P緇勫悎妗嗙殑鍒楄〃妗嗚鍏抽棴

C B N _ D B L C L K鐢ㄦ埛鍙屽嚮浜?jiǎn)涓涓瓧絎︿覆

C B N _ D R O P D O W N緇勫悎妗嗙殑鍒楄〃妗嗚鎷夊嚭

C B N _ E D I T C H A N G E鐢ㄦ埛淇敼浜?jiǎn)缂栬緫妗嗕腑鐨勬枃鏈?

C B N _ E D I T U P D AT E緙栬緫妗嗗唴鐨勬枃鏈嵆灝嗘洿鏂?

C B N _ E R R S PA C E緇勫悎妗嗗唴瀛樹笉瓚?

C B N _ K I L L F O C U S緇勫悎妗嗗け鍘昏緭鍏ョ劍鐐?

C B N _ S E L C H A N G E鍦ㄧ粍鍚堟涓夋嫨浜?jiǎn)涓欏?

C B N _ S E L E N D C A N C E L鐢ㄦ埛鐨勯夋嫨搴斿綋琚彇娑?

C B N _ S E L E N D O K鐢ㄦ埛鐨勯夋嫨鏄悎娉曠殑

C B N _ S E T F O C U S緇勫悎妗嗚幏寰楄緭鍏ョ劍鐐?

緙栬緫妗?

E N _ C H A N G E緙栬緫妗嗕腑鐨勬枃鏈繁鏇存柊

E N _ E R R S PA C E緙栬緫妗嗗唴瀛樹笉瓚?

E N _ H S C R O L L鐢ㄦ埛鐐瑰嚮浜?jiǎn)姘打q蟲粴鍔ㄦ潯

E N _ K I L L F O C U S緙栬緫妗嗘鍦ㄥけ鍘昏緭鍏ョ劍鐐?

E N _ M A X T E X T鎻掑叆鐨勫唴瀹硅鎴柇

E N _ S E T F O C U S緙栬緫妗嗚幏寰楄緭鍏ョ劍鐐?

E N _ U P D AT E緙栬緫妗嗕腑鐨勬枃鏈皢瑕佹洿鏂?

E N _ V S C R O L L鐢ㄦ埛鐐瑰嚮浜?jiǎn)鍨傜洿婊氬姩鏉℃秷鎭惈涔?

鍒楄〃妗?

L B N _ D B L C L K鐢ㄦ埛鍙屽嚮浜?jiǎn)涓欏?

L B N _ E R R S PA C E鍒楄〃妗嗗唴瀛樹笉澶?

L B N _ K I L L F O C U S鍒楄〃妗嗘鍦ㄥけ鍘昏緭鍏ョ劍鐐?

L B N _ S E L C A N C E L閫夋嫨琚彇娑?

L B N _ S E L C H A N G E閫夋嫨浜?jiǎn)鍙︿竴欏?

L B N _ S E T F O C U S鍒楄〃妗嗚幏寰楄緭鍏ョ劍鐐?



warrior 2006-12-28 16:39 鍙戣〃璇勮
]]>
[杞琞windows娑堟伅鏈哄埗http://m.shnenglu.com/zgysx/archive/2006/12/28/16945.htmlwarriorwarriorThu, 28 Dec 2006 08:36:00 GMThttp://m.shnenglu.com/zgysx/archive/2006/12/28/16945.htmlhttp://m.shnenglu.com/zgysx/comments/16945.htmlhttp://m.shnenglu.com/zgysx/archive/2006/12/28/16945.html#Feedback0http://m.shnenglu.com/zgysx/comments/commentRss/16945.htmlhttp://m.shnenglu.com/zgysx/services/trackbacks/16945.html windows娑堟伅鏈哄埗

涓 Windows涓湁涓涓郴緇熸秷鎭槦鍒楋紝瀵逛簬姣忎竴涓鍦ㄦ墽琛岀殑Windows搴旂敤紼嬪簭,緋葷粺涓哄叾寤虹珛涓涓滄秷鎭槦鍒椻濓紝鍗沖簲鐢ㄧ▼搴忛槦鍒楋紝鐢ㄦ潵瀛樻斁璇ョ▼搴忓彲鑳藉垱寤虹殑鍚勭紿楀彛鐨勬秷鎭傚簲鐢ㄧ▼搴忎腑鍚湁涓孌電О浣溾滄秷鎭驚鐜濈殑浠g爜錛岀敤鏉ヤ粠娑堟伅闃熷垪涓绱㈣繖浜涙秷鎭茍鎶婂畠浠垎鍙戝埌鐩稿簲鐨勭獥鍙e嚱鏁頒腑銆?/p>

o_windowsmessage2.jpg

浜?Windows涓哄綋鍓嶆墽琛岀殑姣忎釜Windows紼嬪簭緇存姢涓涓屾秷鎭槦鍒椼嶃傚湪鍙戠敓杈撳叆浜嬩歡涔嬪悗錛學(xué)indows灝嗕簨浠惰漿鎹負(fù)涓涓屾秷鎭嶅茍灝嗘秷鎭斁鍏ョ▼搴忕殑娑堟伅闃熷垪涓傜▼搴忛氳繃鎵ц涓鍧楃О涔嬩負(fù)銆屾秷鎭驚鐜嶇殑紼嬪簭浠g爜浠庢秷鎭槦鍒椾腑鍙栧嚭娑堟伅錛?br />while(GetMessage (&msg, NULL, 0, 0))聽聽聽聽聽聽聽
{聽聽聽聽聽聽聽聽
聽聽聽 TranslateMessage (&msg) ;聽聽聽聽聽聽聽聽
聽聽聽 DispatchMessage (&msg) ;聽聽聽聽聽聽聽
}

msg鍙橀噺鏄瀷鎬佷負(fù)MSG鐨勭粨鏋勶紝鍨嬫丮SG鍦╓INUSER.H涓畾涔夊涓嬶細(xì)
typedef struct tagMSG聽聽聽聽聽聽聽
{聽聽聽聽聽聽聽
聽聽聽 HWND聽聽 hwnd ;聽聽聽聽聽聽聽聽
聽聽聽 UINT聽聽 message ;聽聽聽聽聽聽聽聽
聽聽聽 WPARAM wParam ;聽聽聽聽聽聽聽聽
聽聽聽 LPARAM lParam ;聽聽聽聽聽聽聽聽
聽聽聽 DWORD聽 time ;聽聽聽聽聽聽聽聽
聽聽聽 POINT聽 pt ;聽聽聽聽聽聽聽
}聽聽聽聽聽聽聽
MSG, * PMSG ;
聽聽聽聽聽聽
POINT鏁版嵁鍨嬫佷篃鏄竴涓粨鏋勶紝瀹冨湪WINDEF.H涓畾涔夊涓嬶細(xì)
typedef struct tagPOINT聽聽聽聽聽聽聽
{聽聽聽聽聽聽聽
聽聽聽 LONG聽 x ;聽聽聽聽聽聽聽
聽聽聽 LONG聽 y ;聽聽聽聽聽聽聽
}聽聽聽聽聽聽聽
POINT, * PPOINT;
TranslateMessage(&msg);聽灝唌sg緇撴瀯浼犵粰Windows錛岃繘琛屼竴浜涢敭鐩樿漿鎹€傦紙鍏充簬榪欎竴鐐癸紝鎴戜滑灝嗗湪絎叚绔犱腑娣卞叆璁ㄨ銆傦級(jí)
DispatchMessage(&msg);鍙堝皢msg緇撴瀯鍥炰紶緇橶indows銆傜劧鍚庯紝W(xué)indows灝嗚娑堟伅鍙戦佺粰閫傚綋鐨勭獥鍙f秷鎭鐞嗙▼搴忥紝璁╁畠榪涜澶勭悊銆傝繖涔熷氨鏄錛學(xué)indows灝嗗懠鍙獥鍙f秷鎭鐞嗙▼搴忋傚湪HELLOWIN涓紝榪欎釜紿楀彛娑堟伅澶勭悊紼嬪簭灝辨槸WndProc鍑芥暟銆傚鐞嗗畬娑堟伅涔嬪悗錛學(xué)ndProc浼犲洖鍒癢indows銆傛鏃訛紝W(xué)indows榪樺仠鐣欏湪DispatchMessage鍛煎彨涓傚湪緇撴潫DispatchMessage鍛煎彨鐨勫鐞嗕箣鍚庯紝W(xué)indows鍥炲埌HELLOWIN紼嬪簭涓紝騫朵笖鎺ョ潃浠庝笅涓涓狦etMessage鍛煎彨寮濮嬫秷鎭驚鐜?br />聽聽聽聽聽聽聽聽
涓?闃熷垪鍖栨秷鎭笌闈為槦鍒楀寲娑堟伅
聽聽聽聽
娑堟伅鑳藉琚垎涓恒岄槦鍒楀寲鐨勩嶅拰銆岄潪闃熷垪鍖栫殑銆嶃傞槦鍒楀寲鐨勬秷鎭槸鐢盬indows鏀懼叆紼嬪簭娑堟伅闃熷垪涓殑銆傚湪紼嬪簭鐨勬秷鎭驚鐜腑錛岄噸鏂頒紶鍥炲茍鍒嗛厤緇欑獥鍙f秷鎭鐞嗙▼搴忋傞潪闃熷垪鍖栫殑娑堟伅鍦╓indows鍛煎彨紿楀彛鏃剁洿鎺ラ佺粰紿楀彛娑堟伅澶勭悊紼嬪簭銆備篃灝辨槸璇達(dá)紝闃熷垪鍖栫殑娑堟伅琚屽彂閫併嶇粰娑堟伅闃熷垪錛岃岄潪闃熷垪鍖栫殑娑堟伅鍒欍屽彂閫併嶇粰紿楀彛娑堟伅澶勭悊紼嬪簭銆備換浣曟儏鍐典笅錛岀獥鍙f秷鎭鐞嗙▼搴忛兘灝嗚幏寰楃獥鍙f墍鏈夌殑娑堟伅--鍖呮嫭闃熷垪鍖栫殑鍜岄潪闃熷垪鍖栫殑銆傜獥鍙f秷鎭鐞嗙▼搴忔槸紿楀彛鐨勩屾秷鎭腑蹇?jī)銆嶃?/p>

闃熷垪鍖栨秷鎭熀鏈笂鏄嬌鐢ㄨ呰緭鍏ョ殑緇撴灉錛屼互鍑婚敭錛堝WM_KEYDOWN鍜學(xué)M_KEYUP娑堟伅錛夈佸嚮閿駭鐢熺殑瀛楃錛圵M_CHAR錛夈侀紶鏍囩Щ鍔紙WM_MOUSEMOVE錛夊拰榧犳爣鎸夐挳錛圵M_LBUTTONDOWN錛夌殑褰㈠紡緇欏嚭銆傞槦鍒楀寲娑堟伅榪樺寘鍚椂閽熸秷鎭紙WM_TIMER錛夈佹洿鏂版秷鎭紙WM_PAINT錛夊拰閫鍑烘秷鎭紙WM_QUIT錛夈?/p>

闈為槦鍒楀寲娑堟伅鍒欐槸鍏跺畠娑堟伅銆傚湪璁稿鎯呭喌涓嬶紝闈為槦鍒楀寲娑堟伅鏉ヨ嚜鍛煎彨鐗瑰畾鐨刉indows鍑芥暟銆備緥濡傦紝褰揥inMain鍛煎彨CreateWindow鏃訛紝W(xué)indows灝嗗緩绔嬬獥鍙e茍鍦ㄥ鐞嗕腑緇欑獥鍙f秷鎭鐞嗙▼搴忓彂閫佷竴涓猈M_CREATE娑堟伅銆傚綋WinMain鍛煎彨ShowWindow鏃訛紝W(xué)indows灝嗙粰紿楀彛娑堟伅澶勭悊紼嬪簭鍙戦乄M_SIZE鍜學(xué)M_SHOWWINDOW娑堟伅銆傚綋WinMain鍛煎彨UpdateWindow鏃訛紝W(xué)indows灝嗙粰紿楀彛娑堟伅澶勭悊紼嬪簭鍙戦乄M_PAINT娑堟伅銆傞敭鐩樻垨榧犳爣杈撳叆鏃跺彂鍑虹殑闃熷垪鍖栨秷鎭俊鍙鳳紝涔熻兘鍦ㄩ潪闃熷垪鍖栨秷鎭腑鍑虹幇銆備緥濡傦紝鐢ㄩ敭鐩樻垨榧犳爣閫夋嫨浜?jiǎn)涓涓彍鍗曢」鏃訛紝閿洏鎴栭紶鏍囨秷鎭氨鏄槦鍒楀寲鐨勶紝鑰岃鏄庤彍鍗曢」宸查変腑鐨刉M_COMMAND娑堟伅鍒欏彲鑳藉氨鏄潪闃熷垪鍖栫殑銆?/p>

鍥?SendMessage()涓嶱ostMessage()涔嬮棿鐨勫尯鍒槸浠涔堬紵
瀹冧滑涓よ呮槸鐢ㄤ簬鍚戝簲鐢ㄧ▼搴忓彂閫佹秷鎭殑銆侾ostMessagex()灝嗘秷鎭洿鎺ュ姞鍏ュ埌搴旂敤紼嬪簭鐨勬秷鎭槦鍒椾腑錛屼笉絳夌▼搴忚繑鍥炲氨閫鍑猴紱鑰孲endMessage()鍒欏垰濂界浉鍙嶏紝搴旂敤紼嬪簭澶勭悊瀹屾娑堟伅鍚庯紝瀹冩墠榪斿洖銆傛垜鎯充笅鍥捐兘澶熸瘮杈冨ソ鐨勪綋鐜拌繖涓や釜鍑芥暟鐨勫叧緋伙細(xì)

o_postmessage.gif


浜?鍑芥暟peekmessage鍜実etmessage鐨勫尯鍒紵

涓や釜鍑芥暟涓昏鏈変互涓嬩袱涓尯鍒?
1.GetMessage灝嗙瓑鍒版湁鍚堥傜殑娑堟伅鏃舵墠榪斿洖,鑰孭eekMessage鍙槸鎾囦竴涓嬫秷鎭槦鍒椼?br />2.GetMessage浼?xì)灏嗘秷鎭粠闃熷垪涓垹闄?鑰孭eekMessage鍙互璁劇疆鏈鍚庝竴涓弬鏁皐RemoveMsg鏉ュ喅瀹氭槸鍚﹀皢娑堟伅淇濈暀鍦ㄩ槦鍒椾腑銆?/p>



warrior 2006-12-28 16:36 鍙戣〃璇勮
]]>
紱佹紼嬪簭澶氬紑,騫跺皢鍘熺▼搴忓甫鍒板墠鍙?/title><link>http://m.shnenglu.com/zgysx/archive/2006/12/15/16483.html</link><dc:creator>warrior</dc:creator><author>warrior</author><pubDate>Fri, 15 Dec 2006 08:18:00 GMT</pubDate><guid>http://m.shnenglu.com/zgysx/archive/2006/12/15/16483.html</guid><wfw:comment>http://m.shnenglu.com/zgysx/comments/16483.html</wfw:comment><comments>http://m.shnenglu.com/zgysx/archive/2006/12/15/16483.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/zgysx/comments/commentRss/16483.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/zgysx/services/trackbacks/16483.html</trackback:ping><description><![CDATA[ <p>CString strMutexName = "MySingleInstance";聽<br />HANDLE hMutex = CreateMutex(NULL,FALSE,strMutexName);聽聽<br />聽if (聽 hMutex )<br />聽{<br />聽聽if ( ERROR_ALREADY_EXISTS == ::GetLastError() )<br />聽聽{//濡傛灉宸叉湁鍏堝墠鐨勫疄渚?鍒欓鍑?br />聽聽聽聽<br />聽聽聽聽聽聽HWND hWnd= ::FindWindow([紼嬪簭紿楀彛綾誨悕], [紼嬪簭紿楀彛鍚嶇О]);<br />聽聽聽聽聽聽if( hWnd)<br />聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽::ShowWindow( hWnd, SW_SHOWNORMAL);<br />聽聽聽聽聽聽聽::SetForegroundWindow( hWnd);<br />聽聽聽聽聽聽聽::BringWindowToTop( hWnd);<br />聽聽聽聽聽聽聽::FlashWindow( hWnd, TRUE );<br />聽聽聽聽聽聽}<br />聽聽聽聽聽聽exit(0);<br />聽聽聽}<br />}</p> <img src ="http://m.shnenglu.com/zgysx/aggbug/16483.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zgysx/" target="_blank">warrior</a> 2006-12-15 16:18 <a href="http://m.shnenglu.com/zgysx/archive/2006/12/15/16483.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鎵撳紑鏂囦歡瀵硅瘽妗嗕笌鐩綍閫夋嫨瀵硅瘽妗?/title><link>http://m.shnenglu.com/zgysx/archive/2006/12/06/16053.html</link><dc:creator>warrior</dc:creator><author>warrior</author><pubDate>Wed, 06 Dec 2006 08:17:00 GMT</pubDate><guid>http://m.shnenglu.com/zgysx/archive/2006/12/06/16053.html</guid><wfw:comment>http://m.shnenglu.com/zgysx/comments/16053.html</wfw:comment><comments>http://m.shnenglu.com/zgysx/archive/2006/12/06/16053.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/zgysx/comments/commentRss/16053.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/zgysx/services/trackbacks/16053.html</trackback:ping><description><![CDATA[ <p> <font color="#ff0000">鎵撳紑鏂囦歡瀵硅瘽妗?br /></font>const char pszFilter[] = _T("EXE File (*.txt)|*.txt|All Files (*.*)|*.*||");<br />CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,<br />聽聽pszFilter, this);<br /><br />dlg.m_ofn.lpstrInitialDir = "c:\\WINDOWS\\";聽 //璁劇疆瀵硅瘽妗嗛粯璁ゅ憟鐜扮殑璺緞<br /><br />if(dlg.DoModal() == IDOK)<br />{<br />CString strFilePath = dlg.GetPathName();<br />/*濡傛灉鏈夊涓枃浠?鍒?br />for(POSITION pos = dlg.GetStartPosition(); pos!=NULL; )<br />聽聽{<br />聽聽聽CString strFilePathName = dlg.GetNextPathName(pos);<br />*/<br />}</p> <p> <font color="#ff0000">淇濆瓨鏂囦歡瀵硅瘽妗?br /></font>const char pszFilter[] = _T("EXE Files (*.txt)|*.txt||");<br />CFileDialog dlgSave(聽FALSE,聽 聽//FALSE涓轟繚瀛?br />聽聽_T(".txt"), //鑷姩鍔犱笂鐨勬墿灞曞悕<br />聽聽_T("Output.txt"),聽 //榛樿淇濆瓨鐨勬枃浠跺悕<br />聽聽OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,<br />聽聽pszFilter, this);<br /><br /><br /><br /><font style="BACKGROUND-COLOR: #ffffff" color="#ffff00"><font color="#ff0000">鐩綍閫夋嫨瀵硅瘽妗?/font><br /></font><br />聽BROWSEINFO bi;<br />聽char szPathName[MAX_PATH];<br />聽char szTitle[] = "閫夋嫨璺緞";<br />聽ZeroMemory(&bi, sizeof(BROWSEINFO));<br />聽<br />聽bi.hwndOwner = GetSafeHwnd();<br />聽bi.pszDisplayName = szPathName;<br />聽bi.lpszTitle = szTitle;<br />聽bi.ulFlags = 0x0040 ; <br />聽CString str;<br />CString strDir;聽 //閫夋嫨鐨勭洰褰?/p> <p>聽LPITEMIDLIST idl = SHBrowseForFolder(&bi);<br />聽if(idl == NULL)<br />聽{<br />聽聽strDir= "";<br />聽聽return;<br />聽}<br />聽<br />聽SHGetPathFromIDList(idl, str.GetBuffer(MAX_PATH * 2));<br />聽str.ReleaseBuffer();<br />聽if(str != "" && str.GetAt(str.GetLength() - 1) != '\\')<br />聽聽str += "\\";<br />聽strDir = str;<br /></p> <img src ="http://m.shnenglu.com/zgysx/aggbug/16053.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zgysx/" target="_blank">warrior</a> 2006-12-06 16:17 <a href="http://m.shnenglu.com/zgysx/archive/2006/12/06/16053.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍦ㄥ璇濇涓婁互璺緞褰㈠紡鏄劇ず瀛楃涓?褰撳瓧絎︿覆闀垮害榪囬暱鏃?涓棿鐨勫瓧絎︿覆鐢ㄧ渷鐣ュ彿浠f浛)http://m.shnenglu.com/zgysx/archive/2006/12/06/16052.htmlwarriorwarriorWed, 06 Dec 2006 08:13:00 GMThttp://m.shnenglu.com/zgysx/archive/2006/12/06/16052.htmlhttp://m.shnenglu.com/zgysx/comments/16052.htmlhttp://m.shnenglu.com/zgysx/archive/2006/12/06/16052.html#Feedback0http://m.shnenglu.com/zgysx/comments/commentRss/16052.htmlhttp://m.shnenglu.com/zgysx/services/trackbacks/16052.html鍦ㄥ璇濇涓婁互璺緞褰㈠紡鏄劇ず瀛楃涓?褰撳瓧絎︿覆闀垮害榪囬暱鏃?涓棿鐨勫瓧絎︿覆鐢ㄧ渷鐣ュ彿浠f浛)

CPaintDC dc(this);
CFont NewFont, * pOldFont;
NewFont.CreatePointFont(90, _T("瀹嬩綋"), NULL);
pOldFont = dc.SelectObject(&NewFont);
dc.SetBkMode(TRANSPARENT);

CRect rect;
//IDC_STATIC_PATH鏄樉紺哄瓧絎︿覆鐨剆tatic鎺т歡鐨処D, 娉ㄦ剰鎺т歡鐨勮璁句負(fù)涓嶅彲瑙?br />GetDlgItem(IDC_STATIC_PATH)->GetWindowRect(rect);
ScreenToClient(rect);

dc.DrawText(m_strCorePath, -1, rect, DT_LEFT | DT_PATH_ELLIPSIS | DT_VCENTER | DT_SINGLELINE);
dc.SelectObject(pOldFont);



warrior 2006-12-06 16:13 鍙戣〃璇勮
]]>
浣跨獥鍙i忔槑http://m.shnenglu.com/zgysx/archive/2006/11/07/14808.htmlwarriorwarriorTue, 07 Nov 2006 10:16:00 GMThttp://m.shnenglu.com/zgysx/archive/2006/11/07/14808.htmlhttp://m.shnenglu.com/zgysx/comments/14808.htmlhttp://m.shnenglu.com/zgysx/archive/2006/11/07/14808.html#Feedback0http://m.shnenglu.com/zgysx/comments/commentRss/14808.htmlhttp://m.shnenglu.com/zgysx/services/trackbacks/14808.html#define LWA_COLORKEY聽0x00000001聽聽// Use color as the transparency color.
#define WS_EX_LAYERED聽0x00080000
#define LWA_ALPHA聽2聽聽聽// Use bAlpha to determine the opacity of the layer
typedef BOOL (WINAPI *lpfnSetLayeredWindowAttributes)(HWND hWnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags);
lpfnSetLayeredWindowAttributes MySetLayeredWindowAttributes;

紿楀彛鍗婇忔槑
HMODULE hUser32 = GetModuleHandle("user32.dll");
MySetLayeredWindowAttributes = (lpfnSetLayeredWindowAttributes)GetProcAddress(hUser32,"SetLayeredWindowAttributes");
if(MySetLayeredWindowAttributes == NULL)
{
聽AfxMessageBox("杞藉叆緋葷粺dll澶辮觸,紼嬪簭鍗沖皢閫鍑?");
聽exit(0);
}

::SetWindowLong(GetSafeHwnd(), GWL_EXSTYLE, GetWindowLong(GetSafeHwnd(), GWL_EXSTYLE) ^ WS_EX_LAYERED);
MySetLayeredWindowAttributes(GetSafeHwnd(), 0,
聽130,聽//榪欎釜鍙傛暟鏄帶鍒剁獥鍙i忔槑鐨勫眰搴? 涓?鏃剁獥鍙e叏閫忔槑,鍖呮嫭鏍囬鏍? 涓?55鏃?涓嶉忔槑
聽LWA_ALPHA);//LWA_COLORKEY
FreeLibrary(hUser32);


浣垮璇濇紿楀彛鐨勫鎴峰尯鍏ㄩ忔槑
COLORREF maskColor= 14215660; 榪欐槸棰滆壊鎺╃爜,涓庤繖涓鑹茬浉鍚岀殑灝嗕笉琚樉紺哄嚭鏉?br />SetWindowLong(GetSafeHwnd(), GWL_EXSTYLE, GetWindowLong(GetSafeHwnd(), GWL_EXSTYLE) | WS_EX_LAYERED);
MySetLayeredWindowAttributes(GetSafeHwnd(), maskColor, 10, LWA_COLORKEY);




warrior 2006-11-07 18:16 鍙戣〃璇勮
]]>
VC 涓嬌鐢ㄨ嚜瀹氫箟璧勬簮http://m.shnenglu.com/zgysx/archive/2006/10/31/14419.htmlwarriorwarriorTue, 31 Oct 2006 04:10:00 GMThttp://m.shnenglu.com/zgysx/archive/2006/10/31/14419.htmlhttp://m.shnenglu.com/zgysx/comments/14419.htmlhttp://m.shnenglu.com/zgysx/archive/2006/10/31/14419.html#Feedback0http://m.shnenglu.com/zgysx/comments/commentRss/14419.htmlhttp://m.shnenglu.com/zgysx/services/trackbacks/14419.html涓句緥: 灝嗕竴涓枃浠跺仛涓鴻祫婧愬鍏ュ埌VC宸ョ▼鐨?.rc鏂囦歡涓?紼嬪簭榪愯鏃跺啀灝嗚祫婧愰噴鏀懼嚭鏉ュ啓鍒版枃浠朵腑鍘?

bool DeliverResource(const CString& strDestPath, const char * pszID, const char * pszType)
{
聽HRSRC hRsrc = FindResource(NULL, pszID, pszType);
聽if(NULL == hRsrc)
聽聽return false;
聽DWORD dwSize = SizeofResource(NULL, hRsrc);
聽if(0 == dwSize)
聽聽return false;
聽HGLOBAL hGlobal = LoadResource(NULL, hRsrc);
聽if(NULL == hGlobal)
聽聽return false;
聽LPVOID pBuffer = LockResource(hGlobal);
聽if(NULL == pBuffer)
聽聽return false;

聽tool::CreateMidDir(strDestPath);
聽FILE *fp = fopen(strDestPath, "wb");
聽DWORD dwRemain = dwSize;
聽while(dwRemain > 0)
聽{
聽聽dwRemain -= fwrite(pBuffer, sizeof(char), dwRemain, fp);
聽}
聽fclose(fp);
聽return true;
}



warrior 2006-10-31 12:10 鍙戣〃璇勮
]]>
Windows 鍐呭瓨鏄犲皠鏂囦歡鐨勪嬌鐢?/title><link>http://m.shnenglu.com/zgysx/archive/2006/10/31/14414.html</link><dc:creator>warrior</dc:creator><author>warrior</author><pubDate>Tue, 31 Oct 2006 03:35:00 GMT</pubDate><guid>http://m.shnenglu.com/zgysx/archive/2006/10/31/14414.html</guid><wfw:comment>http://m.shnenglu.com/zgysx/comments/14414.html</wfw:comment><comments>http://m.shnenglu.com/zgysx/archive/2006/10/31/14414.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/zgysx/comments/commentRss/14414.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/zgysx/services/trackbacks/14414.html</trackback:ping><description><![CDATA[ <p>涓句緥:鍍忔搷浣滃瓧絎︿覆涓鏍峰湴鎿嶄綔涓涓枃浠朵腑鐨勫唴瀹?br /><br /><br />bool OperateFileJustLikeToString(const char * pszFileName)<br />{<br />聽const HANDLE hFile = CreateFile(pszFileName, \<br />聽聽GENERIC_WRITE | GENERIC_READ, FILE_SHARE_WRITE | FILE_SHARE_READ, \<br />聽聽NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);<br />聽if(hFile == INVALID_HANDLE_VALUE)<br />聽聽return false;</p> <p>聽DWORD dwLength = GetFileSize(hFile, NULL);<br />聽//鍒涘緩鍐呭瓨鏄犲皠瀵硅薄,鍐呭瓨鏄犲皠鏂囦歡鐨勫ぇ灝?= 鏂囦歡闀垮害 + (WCHAR)'\0'<br />聽//鍥犱負(fù)鎴戜滑瑕佸湪鏂囦歡鐨勬湯灝懼姞涓婁竴涓瓧絎︿覆鐨勭粨鏉熺'\0', 褰撴垜浠皢榪欎釜鏂囦歡鏄犲皠鍒板唴瀛樹腑鏃?鎴戜滑灝卞彲浠ュ儚鎿嶄綔瀛楃涓蹭竴鏍峰湴鏉ユ搷浣滄枃浠朵簡(jiǎn)<br />聽const HANDLE hFileMap = CreateFileMapping(<br />聽聽hFile, NULL, PAGE_READWRITE, 0, <br />聽聽dwLength + sizeof(WCHAR), <br />聽聽NULL);<br />聽<br />聽char * pFile = (char *)MapViewOfFile(hFileMap, FILE_MAP_WRITE, 0, 0, 0);<br />聽pFile[dwLength / sizeof(char)] = '\0';<br />聽<br />聽//鐜板湪瀵規(guī)枃浠剁殑鎿嶄綔灝卞彉鎴愪簡(jiǎn)瀵逛竴瀛楃涓瞤File鐨勬搷浣滀簡(jiǎn),鎵鏈夌殑瀛楃涓插嚱鏁伴兘鑳?br />聽//瀵筽File榪欎釜瀛楃涓茶繘琛屾搷浣? 鑰屾搷浣滅殑緇撴灉鍒欎細(xì)琚繚瀛樺埌鏂囦歡涓幓(浣嗘槸騫朵笉<br />鏄敼鍙榩File<br />聽//涓殑鍐呭鍚庝細(xì)绔嬪埢鍐欏埌鏂囦歡涓幓,浣嗘槸鍦ㄨ皟鐢║nmapViewOfFile()鍚?淇濊瘉鍏堝墠瀵筽File鐨勪慨鏀瑰叏閮ㄤ繚瀛樺埌鏂囦歡涓簡(jiǎn))<br />聽//...........<br />聽//statement();<br />聽//............</p> <p>聽UnmapViewOfFile(pFile);<br />聽CloseHandle(hFileMap);</p> <p>聽//鎴戜滑鏀瑰彉浜?jiǎn)鏂囦欢鐨勯暱搴?鍥犳瑕侀噸鏂拌緗枃浠剁殑緇撴潫絎︿互鍒犻櫎鐣欏湪鏂囦歡灝鵑儴鐨勫浣欏唴瀹?姣斿鍒犻櫎鎴戜滑鍏堝墠鍔犲埌鏂囦歡鏈熬鐨?\0'瀛楃)<br />聽SetFilePointer(hFile,dwLength , NULL, FILE_BEGIN);<br />聽SetEndOfFile(hFile);聽聽//璁懼畾褰撳墠鏂囦歡鎸囬拡鎵鍦ㄥ涓烘枃浠剁粨鏉熷.璇ュ鍚庨潰鐨勫唴瀹瑰皢琚垹闄?br />聽CloseHandle(hFile);<br />聽return true;<br />}</p> <img src ="http://m.shnenglu.com/zgysx/aggbug/14414.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zgysx/" target="_blank">warrior</a> 2006-10-31 11:35 <a href="http://m.shnenglu.com/zgysx/archive/2006/10/31/14414.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>浣跨▼搴忕晫闈㈠叿鏈塜P椋庢牸(鍦╒S2003鍜孷S2005涓?http://m.shnenglu.com/zgysx/archive/2006/10/31/14413.htmlwarriorwarriorTue, 31 Oct 2006 02:52:00 GMThttp://m.shnenglu.com/zgysx/archive/2006/10/31/14413.htmlhttp://m.shnenglu.com/zgysx/comments/14413.htmlhttp://m.shnenglu.com/zgysx/archive/2006/10/31/14413.html#Feedback4http://m.shnenglu.com/zgysx/comments/commentRss/14413.htmlhttp://m.shnenglu.com/zgysx/services/trackbacks/14413.html 鍦╒S 2003 鐜涓?br />1.鍦ㄥ伐紼嬬殑鐩綍涓嬪緩涓涓悕涓?xpapp.manifest鐨勬枃浠? 鎶婁笅闈㈢殑鍐呭鎷峰埌榪欎釜鏂囦歡涓?
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
聽聽聽 version="1.0.0.0"
聽聽聽 processorArchitecture="X86"
聽聽聽 name="Microsoft.Windows.ViPod"
聽聽聽 type="win32"
/>
<description>Your app description here</description>
<dependency>
聽聽聽 <dependentAssembly>
聽聽聽聽聽聽聽 <assemblyIdentity
聽聽聽聽聽聽聽聽聽聽聽 type="win32"
聽聽聽聽聽聽聽聽聽聽聽 name="Microsoft.Windows.Common-Controls"
聽聽聽聽聽聽聽聽聽聽聽 version="6.0.0.0"
聽聽聽聽聽聽聽聽聽聽聽 processorArchitecture="X86"
聽聽聽聽聽聽聽聽聽聽聽 publicKeyToken="6595b64144ccf1df"
聽聽聽聽聽聽聽聽聽聽聽 language="*"
聽聽聽聽聽聽聽 />
聽聽聽 </dependentAssembly>
</dependency>
</assembly>


2.灝嗗伐紼嬬殑*.rc鏂囦歡鎵撳紑, 鍔犱笂榪欐牱涓鍙ヨ瘽(娉ㄦ剰瑕佸姞涓?endif鍓?:

//榪欏悕璇濇槸鍛婅瘔宸ョ▼浣跨敤鍒氭墠鎴戜滑鍒涘緩鐨勯偅涓枃浠?浣跨▼搴忕晫闈㈠彉鎴怷P椋庢牸
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "xpapp.manifest"


3.鍦ㄥ伐紼嬬殑C*App鏂囦歡涓姞涓?br />#pragma comment(lib, "ComCtl32.lib")聽聽聽聽聽 //3姝ユ槸閫夊仛

4.濡傛灉浣犵殑浠g爜鏄敤V6鐨勫悜瀵肩敓鎴愮殑,閭e繀欏誨皢宸ョ▼杞垚vc.net涓?鐒跺悗鍦–*App鐨処nitInstance()鏈寮濮嬪嚭鍔犱笂
InitCommonControls();榪欎釜鍑芥暟,V6鐨勫悜瀵間笉浼?xì)鑷姩娣诲姞杩欎釜鍑芥?
//4姝ユ槸閫夊仛


濡傛灉鏄疺S 2005 鍒欐湁鎵涓嶅悓
VS 2005涓?濡傛灉Project->Property聽 -- General -- Character Set 涓篣se Unicode Character Set,閭d箞紼嬪簭鐨勭晫闈㈣嚜鐒跺氨鏄疿P椋庢牸,涓嶉渶瑕佹墜鍔ㄦ坊鍔犱換浣曚笢瑗褲備絾鏄鏋滆繖閲屾槸Use Multi-Byte Character Set錛岄偅涔堝氨瑕佽嚜宸卞姩鎵嬪姞涓滆タ浜?jiǎn)锛屽拰涓婇潰鎿嶄綔宸笉澶氥?br />
1銆佸緩涓涓悕涓篨PStyle.manifest鐨勬枃浠?br />2銆佹妸涓嬮潰鐨勫唴瀹規(guī)嫹鍒拌繖涓枃浠朵腑
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
聽 <assemblyIdentity
聽聽聽聽聽 version="1.0.0.0"
聽聽聽聽聽 processorArchitecture="X86"
聽聽聽聽聽 name="Microsoft.Windows.WorkSapceName"
聽聽聽聽聽 type="win32"
/>
聽 <description>Your app description here</description>
聽 <dependency>
聽聽聽 <dependentAssembly>
聽聽聽聽聽 <assemblyIdentity
聽聽聽聽聽聽聽聽聽 type="win32"
聽聽聽聽聽聽聽聽聽 name="Microsoft.Windows.Common-Controls"
聽聽聽聽聽聽聽聽聽 version="6.0.0.0"
聽聽聽聽聽聽聽聽聽 processorArchitecture="X86"
聽聽聽聽聽聽聽聽聽 publicKeyToken="6595b64144ccf1df"
聽聽聽聽聽聽聽聽聽 language="*"
聽聽聽聽聽聽聽 />
聽聽聽 </dependentAssembly>
聽 </dependency>
</assembly>

3銆丳roject->Add Existing Item...灝哫PStyle.manifest娣誨姞鍒板伐紼嬩腑銆?br />
4銆佹墦寮宸ョ▼涓殑Resource.h鏂囦歡錛屽姞涓婏細(xì)
#define IDR_MANIFEST聽 1
#define RT_MANIFEST 24


5銆佸皢宸ョ▼鐨剅es\*.rc2鏂囦歡鎵撳紑, 鍔犱笂:
// Add manually edited resources here...
IDR_MANIFEST RT_MANIFEST MOVEABLE PURE聽 聽"res\\XPStyle.manifest"


6銆丷ebuild.....灝卞彲浠ヤ簡(jiǎn)銆?br />(婧愯嚜:http://blog.csdn.net/limigy/archive/2006/04/04/650008.aspx)



warrior 2006-10-31 10:52 鍙戣〃璇勮
]]>
浣跨敤閿洏閽╁瓙(涓嶇敤DLL)http://m.shnenglu.com/zgysx/archive/2006/10/30/14376.htmlwarriorwarriorMon, 30 Oct 2006 06:10:00 GMThttp://m.shnenglu.com/zgysx/archive/2006/10/30/14376.htmlhttp://m.shnenglu.com/zgysx/comments/14376.htmlhttp://m.shnenglu.com/zgysx/archive/2006/10/30/14376.html#Feedback0http://m.shnenglu.com/zgysx/comments/commentRss/14376.htmlhttp://m.shnenglu.com/zgysx/services/trackbacks/14376.html#define WH_KEYBOARD_LL聽聽聽聽 13

瀹氫箟涓涓挬瀛愬嚱鏁?br />LRESULT CALLBACK HookFun(int nCode, WPARAM wParam, LPARAM lParam);

HHOOK g_hHook = NULL;

棣栧厛瑕佸畨瑁呴挬瀛?br />g_hHook = SetWindowsHookEx(WH_KEYBOARD_LL, HookFun, GetModuleHandle(NULL), NULL);
if(g_hHook == NULL)
聽AfxMessageBox("hook failure!");


鍦ㄧ▼搴忕粨鏉熸椂瑕佸嵏杞介挬瀛?br />UnhookWindowsHookEx(g_hHook);

閽╁瓙鍑芥暟鐨勫疄鐜?br />LRESULT CALLBACK HookFun(int nCode, WPARAM wParam, LPARAM lParam)
{
聽聽CWPSTRUCT* p = (CWPSTRUCT*) lParam;
聽if (nCode == HC_ACTION)
聽{聽
聽聽switch (wParam)聽//wParam涓槸娑堟伅ID
聽聽{聽
聽聽case WM_KEYDOWN:聽
聽聽聽{聽聽
聽聽聽聽聽聽if(p->lParam == 'l' || p->lParam == 'L')聽
聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽 // 'l' 閿鎸変笅聽
聽聽聽聽聽聽聽聽聽聽聽聽//do somthing
聽聽聽聽聽聽聽}
聽聽聽聽
聽聽聽聽if(p->lParam == VK_ESCAPE)
聽聽聽聽{//鐢ㄦ埛鎸変笅浜?jiǎn)Esc
聽聽聽聽聽聽//do somthing
聽聽聽聽}聽聽
聽聽}聽
聽}
聽return CallNextHookEx(NULL, nCode, wParam, lParam);
}



warrior 2006-10-30 14:10 鍙戣〃璇勮
]]>
Windows涓敤榧犳爣鎷栨斁鏂囦歡http://m.shnenglu.com/zgysx/archive/2006/10/19/13851.htmlwarriorwarriorThu, 19 Oct 2006 00:47:00 GMThttp://m.shnenglu.com/zgysx/archive/2006/10/19/13851.htmlhttp://m.shnenglu.com/zgysx/comments/13851.htmlhttp://m.shnenglu.com/zgysx/archive/2006/10/19/13851.html#Feedback0http://m.shnenglu.com/zgysx/comments/commentRss/13851.htmlhttp://m.shnenglu.com/zgysx/services/trackbacks/13851.html娣誨姞瀵筗M_DROPFILES鍝嶅簲鐨勫嚱鏁?br />void CMyDlg::OnDropFiles(HDROP hDropInfo)
{
聽char szFilePath[MAX_PATH];
聽int nFileCount;
//鍙栧緱鎷栨斁鐨勬枃浠朵釜鏁?br />聽nFileCount = DragQueryFile(hDropInfo, 0xFFFFFFFF, NULL, MAX_PATH);

聽//鑾峰彇鎷栨斁鐨勬枃浠惰礬寰?br />聽UINT nCharNum = DragQueryFile(hDropInfo, 0, szFilePath, MAX_PATH);
聽//szFilePath涓繚瀛樼潃鏂囦歡璺緞鎴栬呬竴涓洰褰?br />//doSomething();

聽DragFinish(hDropInfo);
聽CDialog::OnDropFiles(hDropInfo);
}



warrior 2006-10-19 08:47 鍙戣〃璇勮
]]>
紼嬪簭涓樉紺轟笌闅愮ず鐨勮皟鐢?dllhttp://m.shnenglu.com/zgysx/archive/2006/10/13/13619.htmlwarriorwarriorFri, 13 Oct 2006 00:39:00 GMThttp://m.shnenglu.com/zgysx/archive/2006/10/13/13619.htmlhttp://m.shnenglu.com/zgysx/comments/13619.htmlhttp://m.shnenglu.com/zgysx/archive/2006/10/13/13619.html#Feedback0http://m.shnenglu.com/zgysx/comments/commentRss/13619.htmlhttp://m.shnenglu.com/zgysx/services/trackbacks/13619.html//===================================
//MyAlg.h
//===================================
/*
闅愮ず瑁呰澆鐨刣ll

浠巇ll涓鍑轟竴涓被,聽 浣跨敤榪欎釜dll涓被鐨勫彲鎵ц浠g爜宸ョ▼蹇呴』鍜岃繖涓猟ll宸ョ▼鐢ㄧ殑鏄悓涓緙栬瘧鍣?br />鍚﹀垯榪欎釜dll灝嗕笉鍙敤
*/

class CMyAlg
{
public:
聽__declspec(dllimport) int Add(int a, int b);
};


//===================================
//MyAlg.cpp
//===================================
#include "MyAlg.h"
int CMyAlg::Add(int a, int b)
{
聽return (a + b);
}





//===================================
//alg.h
//===================================

/*
鏄劇ず瑁呰澆鐨刣ll

浠巇ll涓鍑轟竴浜哄嚱鏁板拰涓涓彉閲? 榪欎釜涓嶄細(xì)鍑虹幇鍍忓鍑虹被鎵紕板埌鐨勯棶棰? 瑕佷互C
椋庢牸鐨勫瀷寮忓鍑?br />*/
extern "C" __declspec(dllimport) int Add(int a, int b);
extern "C" __declspec(dllimport) int g_nValue;







//===================================
//test.cpp聽 嫻嬭瘯鍓嶉潰鍐欏ソ鐨刣ll
//===================================

#include <stdio.h>

#define聽聽聽EXPLICIT_LOAD

#ifdef EXPLICIT_LOAD聽//瀹氫箟浜?jiǎn)鏄窘C烘柟娉曞姞杞紻LL
#include <windows.h>
#endif

#ifdef IMPLICIT_LOAD聽//瀹氫箟浜?jiǎn)闅惤C烘柟娉曞姞杞紻LL
#include "MyAlg.h"
#include "alg.h"
#pragma comment(lib, "Class.lib")聽//dll涓鍑轟竴涓被
#pragma comment(lib, "Win32Dll.lib")//dll涓鍑轟竴涓嚱鏁板拰鍙橀噺
#endif


void main(void)
{
#ifdef IMPLICIT_LOAD
//浣跨敤闅愮ず鏂規(guī)硶鍔犺澆DLL,鍙互璋冪敤dll涓鍑虹殑鍑芥暟銆佸彉閲忓拰綾?br />聽CMyAlg alg;
聽printf("浣跨敤闅愮ず鏂規(guī)硶鍔犺澆DLL\n");
聽printf("CMyAlg::Add(%d, %d) = %d, \n", 1, 2, alg.Add(1, + 2));
聽printf("Add(%d, %d) = %d, g_nValue = %d\n\n", 1, 2, Add(1, 2), g_nValue);
#endif


#ifdef EXPLICIT_LOAD聽
//浣跨敤鏄劇ず鐨勬柟娉曞姞杞紻LL錛屽彧鑳借皟鐢╠ll涓互C椋庢牸瀵煎嚭鐨勫嚱鏁?br />聽printf("浣跨敤鏄劇ず鐨勬柟娉曞姞杞紻LL\n");
聽HINSTANCE hIns = LoadLibrary("Win32Dll.dll");
聽if(hIns = NULL)
聽{
聽聽printf("Load dll failure!\n");
聽聽return;
聽}

聽typedef int(* pAdd)(int, int);
聽pAdd pfun = (pAdd)GetProcAddress(hIns, "Add");
聽printf("pfun(1, 2) = %d, pfun(1,2)\n");

聽FreeLibrary(hIns);
#endif

聽getchar();
}



warrior 2006-10-13 08:39 鍙戣〃璇勮
]]>
鑾峰彇緋葷粺褰撳墠鏃墮棿http://m.shnenglu.com/zgysx/archive/2006/10/09/13475.htmlwarriorwarriorMon, 09 Oct 2006 01:10:00 GMThttp://m.shnenglu.com/zgysx/archive/2006/10/09/13475.htmlhttp://m.shnenglu.com/zgysx/comments/13475.htmlhttp://m.shnenglu.com/zgysx/archive/2006/10/09/13475.html#Feedback0http://m.shnenglu.com/zgysx/comments/commentRss/13475.htmlhttp://m.shnenglu.com/zgysx/services/trackbacks/13475.html聽time(&ltime);
聽char t[50];
聽strftime(t, 50, "%Y%m%d%H%M%S\0", localtime(&ltime));

warrior 2006-10-09 09:10 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲人成亚洲人成在线观看| 欧美午夜精品一区| 亚洲激情女人| 国产精品视频网站| 欧美激情视频给我| 久久精品国产久精国产爱 | 亚洲国产欧美精品| 久久裸体视频| 欧美一区二区高清| 久久国产精品99久久久久久老狼 | 国产精品午夜在线| 国产精品久久一级| 欧美香蕉视频| 国产精品亚洲一区| 国产综合欧美在线看| 一区二区在线观看视频在线观看 | 一区二区三区 在线观看视| 亚洲国产精品va在线看黑人动漫| 欧美mv日韩mv国产网站| 欧美黄色一区二区| 亚洲日本成人在线观看| 亚洲看片一区| 在线性视频日韩欧美| 亚洲一区二区三区777| 午夜精品影院在线观看| 久久国产精品久久久| 欧美不卡高清| 国产精品私房写真福利视频| 国产自产精品| 日韩一区二区久久| 欧美在线视频观看| 亚洲国产成人精品久久| 亚洲视频日本| 久久国产精品99国产精| 性色av一区二区三区在线观看| 99热在这里有精品免费| 亚洲欧美日韩国产中文在线| 久久久国产精彩视频美女艺术照福利| 噜噜噜噜噜久久久久久91| 欧美日韩国产综合视频在线观看中文 | 亚洲精品国产精品国产自| 最新高清无码专区| 亚洲一区在线视频| 老司机午夜精品视频| 久久综合给合久久狠狠色| 欧美区二区三区| 国产主播一区| 在线一区二区三区四区五区| 久久精品免费电影| 亚洲人成艺术| 久久亚洲捆绑美女| 国产乱码精品一区二区三区五月婷| 激情成人亚洲| 亚洲欧美日韩一区二区| 麻豆精品视频| 亚洲一区二区三区乱码aⅴ| 久久99在线观看| 亚洲日本精品国产第一区| 先锋影音久久久| 欧美日韩亚洲天堂| 亚洲国产婷婷香蕉久久久久久| 午夜视频一区| 99精品国产在热久久婷婷| 巨乳诱惑日韩免费av| 国产日韩欧美一区在线 | 亚洲欧美日韩一区二区三区在线| 亚洲主播在线观看| 欧美日韩岛国| 亚洲精品日本| 欧美成人一区二区三区| 亚洲欧美综合另类中字| 国产精品久久久| 亚洲午夜未删减在线观看| 亚洲人成久久| 欧美精品一区在线播放| 亚洲精品影视| 一区二区av在线| 亚洲品质自拍| 欧美乱人伦中文字幕在线| 亚洲国产婷婷香蕉久久久久久| 久久综合久久久久88| 亚洲男人第一网站| 国产三级欧美三级日产三级99| 亚洲欧美日韩中文视频| 亚洲午夜精品网| 国产欧美日韩综合| 久久久久久久一区二区| 亚洲欧美乱综合| 日韩视频不卡| 一区二区三区黄色| 亚洲精品一二三| 欧美系列亚洲系列| 亚洲黄一区二区三区| 欧美99久久| 欧美午夜免费| 一区二区精品| 夜夜嗨av色综合久久久综合网| 亚洲一区在线播放| 夜夜嗨av一区二区三区四区| 欧美高清成人| 亚洲精品一区二区三| 亚洲欧洲一区| 欧美激情在线有限公司| 日韩一级黄色片| 亚洲视频精品| 国产日韩欧美一区二区三区四区| 亚洲美女av在线播放| 日韩西西人体444www| 欧美日韩午夜激情| 久久精品国产精品亚洲精品| 久久综合中文字幕| 亚洲性图久久| 欧美一区在线直播| 亚洲人午夜精品免费| 亚洲日本精品国产第一区| 国产精品成人aaaaa网站| 久久国产福利国产秒拍| 亚洲神马久久| 国产精品久久久久久久久久直播| 欧美一级播放| 欧美成年人在线观看| 欧美一区二区三区四区在线观看| 久久久久久久久久久久久久一区| 日韩小视频在线观看| 亚洲永久网站| 亚洲精品资源| 欧美在线欧美在线| 在线观看国产成人av片| 狂野欧美一区| 国产精品羞羞答答| 亚洲国产网站| 国产亚洲毛片在线| 一区二区三区四区精品| 亚洲电影成人| 欧美亚洲一区三区| 亚洲视频在线观看视频| 男人的天堂亚洲| 久久网站免费| 欧美日韩国产二区| 久热精品在线| 国产欧美日韩综合| 伊人久久久大香线蕉综合直播| 久久久久久久久久久久久女国产乱 | 亚洲精品三级| 欧美在线日韩| 性欧美暴力猛交另类hd| 欧美日韩综合网| 亚洲电影免费观看高清完整版在线| 国产欧美一区二区视频| 亚洲一区免费| 欧美怡红院视频| 国产在线不卡精品| 久久久五月婷婷| 亚洲国产婷婷香蕉久久久久久99| 亚洲欧洲精品一区二区三区不卡 | 蜜臀av国产精品久久久久| 美女视频黄a大片欧美| 1024国产精品| 欧美成人乱码一区二区三区| 亚洲国产另类久久精品| 99精品国产热久久91蜜凸| 国产精品久在线观看| 欧美一区二区国产| 欧美国产亚洲视频| 午夜视频久久久久久| 在线欧美福利| 欧美三级韩国三级日本三斤| 午夜精品一区二区三区四区| 蜜桃伊人久久| 亚洲午夜伦理| 在线观看av不卡| 欧美无砖砖区免费| 久久精品九九| 一本一本a久久| 免费在线观看日韩欧美| 亚洲视频免费在线| 尤物精品国产第一福利三区 | 久久久国产一区二区| 亚洲人成小说网站色在线| 国产精品乱码久久久久久| 久久综合中文字幕| 香港成人在线视频| 一区二区三区 在线观看视| 久久综合久久综合久久综合| 亚洲最新视频在线| 亚洲国产一区二区在线| 国产欧美在线看| 欧美日韩第一区| 久热精品视频在线| 欧美在线视频播放| 亚洲一区二区三区免费视频| 欧美激情一区二区三区蜜桃视频 | 国产精品大全| 欧美成年人在线观看| 久久成人免费| 午夜一区不卡| 亚洲男女自偷自拍| 亚洲一区二区三区精品视频| 亚洲美洲欧洲综合国产一区| 欧美国产激情|