// Disable close button.
CMenu* pMenu = this->GetSystemMenu(FALSE);
pMenu->EnableMenuItem(SC_CLOSE, MF_BYCOMMAND|MF_DISABLED|MF_GRAYED);
思考:我們要用desktop/laptop做些什麼? (2011-04-12) 只是要有用到就會實惠 用不到那效能 再便宜也沒用 - highway4625
// Disable close button.
CMenu* pMenu = this->GetSystemMenu(FALSE);
pMenu->EnableMenuItem(SC_CLOSE, MF_BYCOMMAND|MF_DISABLED|MF_GRAYED);
Dear all,
I made a mistake...
I wrote code like following...
FAILED_RETURN(hr = CopyPEFiles(bCopyPEFiles));
The definition of FAILED_RETURN is
#define FAILED_RETURN(hr) { if(FAILED(hr)) { _ASSERT(FALSE); return hr; } }
Guess what?
The macro is expended like:
{if(FAILED(hr = HPCopyPEFiles(bCopyPEFiles)) {_ASSERT(FALSE); return hr = HPCopyPEFiles(bCopyPEFiles);}
Oops! CopyPEFiles() are entered twice !!!!
The correct code should be:
hr = CopyPEFiles(bCopyPEFiles);
FAILED_RETURN(hr);
Putting an expression in parameter list of a function may be safe,
but it MUST BE dangerous in a macro !!!
(為什麼官網 (http://rss.warnerbros.com/terminatorsalvation/) 的海報是 05.09 啊?
是延後上映嗎?)
(比T4晚一個月...)
You can execute 2 or more commands in one IF expression:
@echo off
set A=12
set B=24
IF %A% EQU 12 echo "hawaii" & echo "los angles" & echo "tapiei"
The result is
"hawaii"
"los angles"
"tapiei"
For example, following code will search \sources\boot.wim in each drive (from C to Z). If found, it will set variable RP the drive.
FOR %%d in (C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z) DO IF EXIST %%d:\sources\boot.wim set RP=%%d& GOTO END_SEARCH_RP
However, if you leave space befire "&", like this:
FOR %%d in (C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z) DO IF EXIST %%d:\sources\boot.wim set RP=%%d & GOTO END_SEARCH_RP
If "E" is the drive, the above code will set RP as "E ".
If you want to use regular expression to search string, please refer
http://msdn.microsoft.com/en-us/library/2k3te2cs.aspx
Some regex items cannot be used in VS 2005,
ex: \W, \A, \S....
http://www.hkitn.com/article.php/2552/2
這裏我們主要使用了三種消息:WM_PAINT , WM_COMMAND和WM_DESTROY ,但是我們可以隨著程式而是用各種各樣的消息。為了處理不同的消息,在程式中使用了分支結構,所以隨著程式的規模越來越大,這個分支結構也會越來越龐大。
在這些消息中有兩個點是最為重要的,其一是WM_DESTROY消息,它表示一個銷毀視窗退出應用程式的消息。也是每個程式所必備的。對於這個消息的處理方式就是通過調用PostQuitMessage ( 0 )函數傳遞一個WM_QUIT消息,準備讓由GetMessage 、 TranslateMessage和DispatchMessage三個函數組成的消息迴圈中的GetMessage取得。當消息迴圈中的收到WM_QUIT消息時,GetMessage會傳回0,從而結束消息迴圈。進而釋放各種資源,結束整個程式。另一個重要的地方是DefWindowProc函數。我們的程式無論多大都不可能將所有的消息都處理,所以我們必須有一個機制讓不重要的不需要我們處理的消息,交給windows作業系統為我們處理,這個過程就是由DefWindowProc函數來實現的。 因此當我們按下視窗右上角的差號或者按下左上角系統功能表中的Close命令時,系統會送出WM_CLOSE消息。通常程式的視窗函數不攔截此消息,於是交由DefWindowProc函數來處理。DefWindowProc函數在受到WM_CLOSE消息後,調用DestroyWindow把視窗清除。DestroyWindow又會送出WM_DESTROY消息。程式又如前面講到的一樣來結束程式釋放資源。
其他參考:
http://msdn.microsoft.com/zh-tw/library/dd229215.aspx
大內高手專欄:
揭開訊息迴圈的神秘面紗
作者:蔡學鏞
2005 年 3 月
http://delphi.ktop.com.tw/board.php?cid=168&fid=914&tid=95232
這些事可能...我以為...是神支持我繼續努力做下去 1. 2015.01.06 北韓第四次核試(官方聲稱是氫彈)。而我整理到2010年8月,南韓剛完成向聯合國的報告,指稱天安艦被擊沉事件是北韓所為。南韓提出證據,聯合國並無反駁。 相近的時間之間,發生北韓對外攻擊 or ...