锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲第一精品电影,在线免费观看视频一区,久久综合网hezyohttp://m.shnenglu.com/aaxron/category/16223.html鎶婂墤瑙傛缽嫻?絎戣璇濅漢鐢?/description>zh-cnWed, 14 Mar 2012 10:13:02 GMTWed, 14 Mar 2012 10:13:02 GMT60WTL涓彧浣跨敤ATL::CStringhttp://m.shnenglu.com/aaxron/archive/2012/03/13/167786.html澶╀笅澶╀笅Tue, 13 Mar 2012 08:57:00 GMThttp://m.shnenglu.com/aaxron/archive/2012/03/13/167786.htmlhttp://m.shnenglu.com/aaxron/comments/167786.htmlhttp://m.shnenglu.com/aaxron/archive/2012/03/13/167786.html#Feedback0http://m.shnenglu.com/aaxron/comments/commentRss/167786.htmlhttp://m.shnenglu.com/aaxron/services/trackbacks/167786.html鍦╯tdafx.h涓?br />//鏀懼湪鏈鍓嶉潰
#define _WTL_NO_CSTRING
#include <atlstr.h> //榪欎釜蹇呴』鏀懼湪 #include <atlapp.h>


鍥犱負ATL::CString鏄疢FC涓嶢TL鍏叡綾?



澶╀笅 2012-03-13 16:57 鍙戣〃璇勮
]]>
WTL涓獥鍙g被鐨勪竴浜涚壒孌婂鐞?/title><link>http://m.shnenglu.com/aaxron/archive/2012/02/21/166112.html</link><dc:creator>澶╀笅</dc:creator><author>澶╀笅</author><pubDate>Tue, 21 Feb 2012 02:26:00 GMT</pubDate><guid>http://m.shnenglu.com/aaxron/archive/2012/02/21/166112.html</guid><wfw:comment>http://m.shnenglu.com/aaxron/comments/166112.html</wfw:comment><comments>http://m.shnenglu.com/aaxron/archive/2012/02/21/166112.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/aaxron/comments/commentRss/166112.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/aaxron/services/trackbacks/166112.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">//</span><span style="color: #008000; ">WTL涓獥鍙g被鐨勪竴浜涚壒孌婂鐞?/span><span style="color: #008000; "><br /></span><span style="color: #000000; ">    <br /></span><span style="color: #0000FF; ">struct</span><span style="color: #000000; "> CWndClassInfo<br />{<br />    WNDCLASSEX m_wc;<br />    LPCSTR m_lpszOrigName;<br />    WNDPROC pWndProc;<br />    LPCSTR m_lpszCursorID;<br />    BOOL m_bSystemCursor;<br />    ATOM m_atom;<br />    CHAR m_szAutoName[</span><span style="color: #000000; ">5</span><span style="color: #000000; ">+</span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">*</span><span style="color: #000000; ">)</span><span style="color: #000000; ">*</span><span style="color: #000000; ">CHAR_BIT];<br />};<br />榪欎釜緇撴瀯涓湁涓や釜鏈閲嶈鐨勬垚鍛橈細m_wc鍜宮_atom銆俶_wc鏄獥鍙g被鐨勭粨鏋勶紝鎯寵鎵嬪姩娉ㄥ唽綾繪椂鎵浣跨敤鐨勭粨鏋勩俶_atom鐢ㄤ簬紜畾榪欎釜綾繪槸鍚﹀凡緇忔敞鍐岋紝鍦ㄨ繕娌℃湁娉ㄥ唽綾諱箣鍓嶏紝淇敼m_wc榪樻槸鏈夋晥鏋滅殑銆?br /><br />typedef </span><span style="color: #0000FF; ">struct</span><span style="color: #000000; "> {<br />    UINT cbSize;<br />    UINT style;<br />    WNDPROC lpfnWndProc;<br />    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> cbClsExtra;<br />    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> cbWndExtra;<br />    HINSTANCE hInstance;<br />    HICON hIcon;<br />    HCURSOR hCursor;<br />    HBRUSH hbrBackground;<br />    LPCTSTR lpszMenuName;<br />    LPCTSTR lpszClassName;<br />    HICON hIconSm;<br />} WNDCLASSEX;<br /><br />ATL::CWndClassInfo wc </span><span style="color: #000000; ">=</span><span style="color: #000000; "> <br />{ <br />    { </span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(WNDCLASSEX), style, StartWindowProc, </span><span style="color: #000000; ">0</span><span style="color: #000000; ">, </span><span style="color: #000000; ">0</span><span style="color: #000000; ">, NULL, NULL, NULL, (HBRUSH)(bkgnd </span><span style="color: #000000; ">+</span><span style="color: #000000; "> </span><span style="color: #000000; ">1</span><span style="color: #000000; ">), NULL, WndClassName, NULL }, </span><span style="color: #008000; ">//</span><span style="color: #008000; ">WNDCLASSEX</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">    NULL,        </span><span style="color: #008000; ">//</span><span style="color: #008000; ">m_lpszOrigName</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">    NULL,         </span><span style="color: #008000; ">//</span><span style="color: #008000; ">pWndProc</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">    IDC_ARROW,    </span><span style="color: #008000; ">//</span><span style="color: #008000; ">m_lpszCursorID</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">    TRUE,         </span><span style="color: #008000; ">//</span><span style="color: #008000; ">m_bSystemCursor</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">    </span><span style="color: #000000; ">0</span><span style="color: #000000; ">,             </span><span style="color: #008000; ">//</span><span style="color: #008000; ">m_atom</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">    _T(</span><span style="color: #000000; ">""</span><span style="color: #000000; ">)         </span><span style="color: #008000; ">//</span><span style="color: #008000; ">m_szAutoName</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">}; <br /><br /><br /><br /><br /><br /><br /></span><span style="color: #808080; ">///////////////////////////////////////////////////////////////////////////</span><span style="color: #008000; ">//</span><span style="color: #808080; "><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; "> CWndClassInfo - Manages Windows class information</span><span style="color: #008000; "><br /></span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">#define</span><span style="color: #000000; "> DECLARE_WND_CLASS(WndClassName) \</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> ATL::CWndClassInfo</span><span style="color: #000000; ">&</span><span style="color: #000000; "> GetWndClassInfo() \<br />{ \<br />    </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> ATL::CWndClassInfo wc </span><span style="color: #000000; ">=</span><span style="color: #000000; "> \<br />    { \<br />        { </span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(WNDCLASSEX), CS_HREDRAW </span><span style="color: #000000; ">|</span><span style="color: #000000; "> CS_VREDRAW </span><span style="color: #000000; ">|</span><span style="color: #000000; "> CS_DBLCLKS, StartWindowProc, \<br />          </span><span style="color: #000000; ">0</span><span style="color: #000000; ">, </span><span style="color: #000000; ">0</span><span style="color: #000000; ">, NULL, NULL, NULL, (HBRUSH)(COLOR_WINDOW </span><span style="color: #000000; ">+</span><span style="color: #000000; "> </span><span style="color: #000000; ">1</span><span style="color: #000000; ">), NULL, WndClassName, NULL }, \<br />        NULL, NULL, IDC_ARROW, TRUE, </span><span style="color: #000000; ">0</span><span style="color: #000000; ">, _T(</span><span style="color: #000000; ">""</span><span style="color: #000000; ">) \<br />    }; \<br />    </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> wc; \<br />}<br /><br /></span><span style="color: #0000FF; ">#define</span><span style="color: #000000; "> DECLARE_WND_CLASS_EX(WndClassName, style, bkgnd) \</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> ATL::CWndClassInfo</span><span style="color: #000000; ">&</span><span style="color: #000000; "> GetWndClassInfo() \<br />{ \<br />    </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> ATL::CWndClassInfo wc </span><span style="color: #000000; ">=</span><span style="color: #000000; "> \<br />    { \<br />        { </span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(WNDCLASSEX), style, StartWindowProc, \<br />          </span><span style="color: #000000; ">0</span><span style="color: #000000; ">, </span><span style="color: #000000; ">0</span><span style="color: #000000; ">, NULL, NULL, NULL, (HBRUSH)(bkgnd </span><span style="color: #000000; ">+</span><span style="color: #000000; "> </span><span style="color: #000000; ">1</span><span style="color: #000000; ">), NULL, WndClassName, NULL }, \<br />        NULL, NULL, IDC_ARROW, TRUE, </span><span style="color: #000000; ">0</span><span style="color: #000000; ">, _T(</span><span style="color: #000000; ">""</span><span style="color: #000000; ">) \<br />    }; \<br />    </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> wc; \<br />}<br /><br /></span><span style="color: #0000FF; ">#define</span><span style="color: #000000; "> DECLARE_WND_SUPERCLASS(WndClassName, OrigWndClassName) \</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> ATL::CWndClassInfo</span><span style="color: #000000; ">&</span><span style="color: #000000; "> GetWndClassInfo() \<br />{ \<br />    </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> ATL::CWndClassInfo wc </span><span style="color: #000000; ">=</span><span style="color: #000000; "> \<br />    { \<br />        { </span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(WNDCLASSEX), </span><span style="color: #000000; ">0</span><span style="color: #000000; ">, StartWindowProc, \<br />          </span><span style="color: #000000; ">0</span><span style="color: #000000; ">, </span><span style="color: #000000; ">0</span><span style="color: #000000; ">, NULL, NULL, NULL, NULL, NULL, WndClassName, NULL }, \<br />        OrigWndClassName, NULL, NULL, TRUE, </span><span style="color: #000000; ">0</span><span style="color: #000000; ">, _T(</span><span style="color: #000000; ">""</span><span style="color: #000000; ">) \<br />    }; \<br />    </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> wc; \<br />}</span></div><img src ="http://m.shnenglu.com/aaxron/aggbug/166112.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/aaxron/" target="_blank">澶╀笅</a> 2012-02-21 10:26 <a href="http://m.shnenglu.com/aaxron/archive/2012/02/21/166112.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>綆鍗曠殑CInfoTip綾?/title><link>http://m.shnenglu.com/aaxron/archive/2012/02/18/165921.html</link><dc:creator>澶╀笅</dc:creator><author>澶╀笅</author><pubDate>Sat, 18 Feb 2012 09:36:00 GMT</pubDate><guid>http://m.shnenglu.com/aaxron/archive/2012/02/18/165921.html</guid><wfw:comment>http://m.shnenglu.com/aaxron/comments/165921.html</wfw:comment><comments>http://m.shnenglu.com/aaxron/archive/2012/02/18/165921.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/aaxron/comments/commentRss/165921.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/aaxron/services/trackbacks/165921.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">//</span><span style="color: #008000; ">file:InfoTip.h</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">#pragma once<br />#include </span><span style="color: #000000; "><</span><span style="color: #000000; ">atlwin.h</span><span style="color: #000000; ">></span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">class</span><span style="color: #000000; "> CInfoTip : <br />    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> ATL::CWindowImpl</span><span style="color: #000000; "><</span><span style="color: #000000; ">CInfoTip</span><span style="color: #000000; ">></span><span style="color: #000000; "> <br />{ <br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">: <br />    DECLARE_WND_CLASS_EX(NULL, </span><span style="color: #000000; ">0</span><span style="color: #000000; ">, COLOR_3DFACE) <br /><br />    LPCTSTR m_lpstrInfo; <br /><br />    </span><span style="color: #0000FF; ">enum</span><span style="color: #000000; "> { m_nToolTipID </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">1313</span><span style="color: #000000; "> }; <br />    WTL::CToolTipCtrl m_tooltip; <br /><br /><br />    CInfoTip():m_lpstrInfo(NULL) <br />    { } <br /><br />    </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> Init(HWND hWnd, LPCTSTR lpstrName) <br />    { <br />        ATLASSERT(::IsWindow(hWnd)); <br />        SubclassWindow(hWnd); <br /><br />        </span><span style="color: #008000; ">//</span><span style="color: #008000; "> Set tooltip </span><span style="color: #008000; "><br /></span><span style="color: #000000; ">        m_tooltip.Create(m_hWnd); <br />        ATLASSERT(m_tooltip.IsWindow()); <br />        RECT rect; <br />        GetClientRect(</span><span style="color: #000000; ">&</span><span style="color: #000000; ">rect); <br />        CToolInfo ti(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">, m_hWnd, m_nToolTipID, </span><span style="color: #000000; ">&</span><span style="color: #000000; ">rect, NULL); <br />        m_tooltip.AddTool(</span><span style="color: #000000; ">&</span><span style="color: #000000; ">ti); <br /><br />        </span><span style="color: #008000; ">//</span><span style="color: #008000; "> set text </span><span style="color: #008000; "><br /></span><span style="color: #000000; ">        m_lpstrInfo </span><span style="color: #000000; ">=</span><span style="color: #000000; "> lpstrName; <br />        </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(m_lpstrInfo </span><span style="color: #000000; ">==</span><span style="color: #000000; "> NULL) <br />            </span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">; <br /><br />        m_tooltip.UpdateTipText(m_lpstrInfo, m_hWnd, m_nToolTipID); <br />        m_tooltip.Activate(</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">); <br />    } <br /><br />    BEGIN_MSG_MAP(CInfoTip) <br />        MESSAGE_RANGE_HANDLER(WM_MOUSEFIRST, WM_MOUSELAST,OnMouseMessage) <br />    END_MSG_MAP() <br /><br />    LRESULT OnMouseMessage(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL</span><span style="color: #000000; ">&</span><span style="color: #000000; "> bHandled) <br />    { <br />        </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(m_tooltip.IsWindow()) <br />        { <br />            MSG msg </span><span style="color: #000000; ">=</span><span style="color: #000000; "> { m_hWnd, uMsg, wParam, lParam }; <br />            m_tooltip.RelayEvent(</span><span style="color: #000000; ">&</span><span style="color: #000000; ">msg); <br />        } <br />        bHandled </span><span style="color: #000000; ">=</span><span style="color: #000000; "> FALSE; <br />        </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> </span><span style="color: #000000; ">1</span><span style="color: #000000; ">; <br />    } <br />}; <br /><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">浣跨敤:</span><span style="color: #008000; "><br /></span><span style="color: #000000; "><br />    CInfoTip m_InfoTipEdit;<br />    m_InfoTipEdit.Init(   GetDlgItem(   IDOK   ),   </span><span style="color: #000000; ">"</span><span style="color: #000000; ">杈撳叆瀵嗙爜 </span><span style="color: #000000; ">"</span><span style="color: #000000; ">     ); </span></div><img src ="http://m.shnenglu.com/aaxron/aggbug/165921.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/aaxron/" target="_blank">澶╀笅</a> 2012-02-18 17:36 <a href="http://m.shnenglu.com/aaxron/archive/2012/02/18/165921.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>How to move a dialog which does not have a caption(闈炴爣棰樻爮縐誨姩瀵硅瘽妗?http://m.shnenglu.com/aaxron/archive/2012/02/16/165724.html澶╀笅澶╀笅Thu, 16 Feb 2012 02:24:00 GMThttp://m.shnenglu.com/aaxron/archive/2012/02/16/165724.htmlhttp://m.shnenglu.com/aaxron/comments/165724.htmlhttp://m.shnenglu.com/aaxron/archive/2012/02/16/165724.html#Feedback0http://m.shnenglu.com/aaxron/comments/commentRss/165724.htmlhttp://m.shnenglu.com/aaxron/services/trackbacks/165724.html
How to move a dialog which does not have a caption
Introduction
This article is aimed at beginners, and presents two ways to move a dialog which does not have a caption by dragging its client area.
1. WM_SYSCOMMAND message
Sending the WM_SYSCOMMAND message starts the move operation. Add the following code to handle the mouse down event:
BEGIN_MSG_MAP(CMainDlg)
    
//...
    MESSAGE_HANDLER(WM_LBUTTONDOWN, OnLButtonDown)
END_MSG_MAP()

LRESULT OnLButtonDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL
& bHandled)
{
    SendMessage(WM_SYSCOMMAND, SC_MOVE
|HTCAPTION);
    
return 0;
}


2. WM_NCHITTEST message
The idea is to handle the WM_NCHITTEST message to return HTCAPTION instead of HTCLIENT when the mouse is in the client area, to trick Windows to start moving the dialog.
BEGIN_MSG_MAP(CMainDlg)
    
//...
    MESSAGE_HANDLER(WM_NCHITTEST, OnNcHitTest)
END_MSG_MAP()

LRESULT OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL
& bHandled)
{
    
if (::DefWindowProc(m_hWnd, uMsg, wParam, lParam) == 
        HTCLIENT 
&& ::GetAsyncKeyState(MK_LBUTTON) < 0)
      
return HTCAPTION;

    
return 0;
}

//For MFC
//Devil for ever supplied the MFC solution that is shown below (thanks!). The idea is the same - to handle the WM_NCHITTEST message.
UINT OnNcHitTest(CPoint point)
{
    UINT nHit 
= CDialog::OnNcHitTest(point);
    
return (nHit == HTCLIENT ? HTCAPTION : nHit);
}


澶╀笅 2012-02-16 10:24 鍙戣〃璇勮
]]>
WTL::CFileDialoghttp://m.shnenglu.com/aaxron/archive/2012/02/13/165467.html澶╀笅澶╀笅Mon, 13 Feb 2012 03:09:00 GMThttp://m.shnenglu.com/aaxron/archive/2012/02/13/165467.htmlhttp://m.shnenglu.com/aaxron/comments/165467.htmlhttp://m.shnenglu.com/aaxron/archive/2012/02/13/165467.html#Feedback0http://m.shnenglu.com/aaxron/comments/commentRss/165467.htmlhttp://m.shnenglu.com/aaxron/services/trackbacks/165467.html//MFC
CFileDialog dlg(TRUE,NULL,NULL,NULL,"鏁版嵁鏂囨。(*.dat)|*.dat|妯℃澘鏂囦歡(*.fpmb)|*.fpmb||"); 

//WTL  
WTL::CFileDialog dlg(TRUE,NULL,NULL,NULL,"鏁版嵁鏂囨。(*.dat)\0*.dat\0妯℃澘鏂囦歡(*.fpmb)\0*.fpmb\0\0");

鍏朵腑鏂囦歡榪囨護鍣?MFC浠?/span>|鍒嗛殧,鑰學TL浠0鍒嗛殧.

WTL::CFileDialog dlg(TRUE,0,0,OFN_EXPLORER,_T("Pictures (*.bmp;*.jpg;*.png)\0*.bmp;*.jpg;*.png\0All files (*.*)\0 *.*\0"),*this);




澶╀笅 2012-02-13 11:09 鍙戣〃璇勮
]]>
wtl瀛︿範絎旇(2),WTL(ATL)涓殑鍏ㄥ眬鍙橀噺http://m.shnenglu.com/aaxron/archive/2011/12/05/161488.html澶╀笅澶╀笅Mon, 05 Dec 2011 04:32:00 GMThttp://m.shnenglu.com/aaxron/archive/2011/12/05/161488.htmlhttp://m.shnenglu.com/aaxron/comments/161488.htmlhttp://m.shnenglu.com/aaxron/archive/2011/12/05/161488.html#Feedback0http://m.shnenglu.com/aaxron/comments/commentRss/161488.htmlhttp://m.shnenglu.com/aaxron/services/trackbacks/161488.html//WTL(ATL)涓殑鍏ㄥ眬鍙橀噺
//鏂囦歡:externs.cpp
CAtlAllocator g_Allocator;
static const bool g_bInitialized = Init();


//鏂囦歡:atlbase.cpp
ATL::CAtlBaseModule  _AtlBaseModule;
ATL::CAtlWinModule   _AtlWinModule;
ATL::CAtlComModule  _AtlComModule;

//鏂囦歡:atlapp.h,DEBUG鐗堟湰涓墠鏈?/span>
WTL::ATL::CTraceCategory atlTraceUI(_T("atlTraceUI"));

//浣犺嚜宸辯殑搴旂敤紼嬪簭鍏ュ彛鏂囦歡,鏂囦歡涓寘鎷琖inMain()鍑芥暟
CAppModule _Module;



//鏂囦歡:atlbase.h
extern "C" IMAGE_DOS_HEADER __ImageBase;
extern CAtlComModule _AtlComModule;
extern CAtlWinModule _AtlWinModule;
__declspec(selectany) CComModule
* _pModule = NULL;
//鍏抽敭鐨勬瀯閫犲嚱鏁?璇鋒敞鎰忔垚鍛樺彉閲?m_hInst鍙妋_hInstResource,鍙橀噺:__ImageBase
CAtlBaseModule::CAtlBaseModule() throw()
{
    cbSize 
= sizeof(_ATL_BASE_MODULE);
    m_hInst 
= m_hInstResource = reinterpret_cast<HINSTANCE>(&__ImageBase);
    dwAtlBuildVer 
= _ATL_VER;
    pguidVer 
= &GUID_ATLVer70;
    
if (FAILED(m_csResource.Init()))
    {
        ATLTRACE(atlTraceGeneral, 
0, _T("ERROR : Unable to initialize critical section in CAtlBaseModule\n"));
        ATLASSERT(
0);
        CAtlBaseModule::m_bInitFailed 
= true;
    }
}

//鏂囦歡:crt0.c
__declspec(noinline) int __tmainCRTStartup(void)
{
#ifdef _WINMAIN_
    lpszCommandLine 
= _twincmdln();
    mainret 
= _tWinMain( (HINSTANCE)&__ImageBase, NULL,lpszCommandLine,StartupInfo.dwFlags & STARTF_USESHOWWINDOW? StartupInfo.wShowWindow : SW_SHOWDEFAULT );
#else
    _tinitenv 
= _tenviron;
    mainret 
= _tmain(__argc, _targv, _tenviron);
#endif
}


澶╀笅 2011-12-05 12:32 鍙戣〃璇勮
]]>
wtl瀛︿範絎旇(1),紿楀彛綾葷殑娉ㄥ唽http://m.shnenglu.com/aaxron/archive/2011/12/03/161348.html澶╀笅澶╀笅Sat, 03 Dec 2011 03:54:00 GMThttp://m.shnenglu.com/aaxron/archive/2011/12/03/161348.htmlhttp://m.shnenglu.com/aaxron/comments/161348.htmlhttp://m.shnenglu.com/aaxron/archive/2011/12/03/161348.html#Feedback0http://m.shnenglu.com/aaxron/comments/commentRss/161348.htmlhttp://m.shnenglu.com/aaxron/services/trackbacks/161348.html 

浠諱綍闈炲璇濇紿楀彛閮芥槸鏉ヨ嚜CWindowImpl媧劇敓
瀵硅瘽妗嗙獥鍙i兘鏄潵鑷狢DialogImpl媧劇敓    
瀹氫箟涓涓獥鍙g殑瀹炵幇
浣犵殑鏂扮獥鍙g被闇瑕佸寘鍚笁浠朵簨鎯咃細
涓銆佷竴涓獥鍙g被鐨勫畾涔?濡?
    榛樿鐢辯埗綾籆WindowImpl鐨凞ECLARE_WND_CLASS(NULL) 瀹屾垚紿楀彛WNDCLASS緇撴瀯浣撶殑瀹氫箟.
    涔熷彲浠ヨ嚜宸遍氳繃DECLARE_WND_CLASS(_T(
"My Window Class")) 瀹屾垚紿楀彛WNDCLASS緇撴瀯浣撶殑瀹氫箟.
    
浜屻佹坊鍔犳秷鎭槧灝勯摼
    鍏朵腑紲栧厛綾籆WindowImplRoot緇ф壙鑷狢MessageMap
涓夈佺獥鍙d嬌鐢ㄧ殑榛樿紿楀彛綾誨瀷錛岀О涓虹О涓簑indow traits
棰勫畾涔夌殑window traits:
typedef CWinTraits
<WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, 0> CControlWinTraits;
typedef CWinTraits
<WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, WS_EX_APPWINDOW | WS_EX_WINDOWEDGE> CFrameWinTraits;
typedef CWinTraits
<WS_OVERLAPPEDWINDOW | WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, WS_EX_MDICHILD>    CMDIChildWinTraits;
typedef CWinTraits
<00> CNullTraits;


綾葷戶鎵垮叧緋?
template 
<class T, class TBase /* = CWindow */class TWinTraits /* = CControlWinTraits */>
class ATL_NO_VTABLE CWindowImpl : public CWindowImplBaseT< TBase, TWinTraits >
{
};

template 
<class TBase = CWindow, class TWinTraits = CControlWinTraits>
class ATL_NO_VTABLE CWindowImplBaseT : public CWindowImplRoot< TBase >
{
public:
    WNDPROC m_pfnSuperWindowProc;

    CWindowImplBaseT() : m_pfnSuperWindowProc(::DefWindowProc)
    {}    
};

template 
<class TBase /* = CWindow */>
class ATL_NO_VTABLE CWindowImplRoot : public TBase, public CMessageMap 
{
};


//紿楀彛綾葷殑娉ㄥ唽,瀹?DECLARE_WND_CLASS
#define DECLARE_WND_CLASS(WndClassName) \
static ATL::CWndClassInfo& GetWndClassInfo() \
{ \
    
static ATL::CWndClassInfo wc = \
    { \
        { 
sizeof(WNDCLASSEX), CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS, StartWindowProc, \
          
00, NULL, NULL, NULL, (HBRUSH)(COLOR_WINDOW + 1), NULL, WndClassName, NULL }, \
        NULL, NULL, IDC_ARROW, TRUE, 
0, _T("") \
    }; \
    
return wc; \
}




鍏ㄥ眬鍙橀噺:_AtlWinModule,_AtlBaseModule
extern CAtlWinModule _AtlWinModule;
extern CAtlBaseModule _AtlBaseModule;

//紿楀彛綾籛NDCLASS緇撴瀯浣撶殑濉厖
struct _ATL_WNDCLASSINFOA
{
    WNDCLASSEXA m_wc;
    LPCSTR m_lpszOrigName;
    WNDPROC pWndProc;
    LPCSTR m_lpszCursorID;
    BOOL m_bSystemCursor;
    ATOM m_atom;
    CHAR m_szAutoName[
5+sizeof(void*)*CHAR_BIT];
    ATOM Register(WNDPROC
* p)
    {
        
return AtlWinModuleRegisterWndClassInfoA(&_AtlWinModule, &_AtlBaseModule, this, p);
    }
};    
typedef _ATL_WNDCLASSINFOA CWndClassInfoA;

紿楀彛娉ㄥ唽榪囩▼
CMainFrame wndMain;
CFrameWindowImpl::Create()
ATOM atom 
= T::GetWndClassInfo().Register(&m_pfnSuperWindowProc);
//妯℃澘灞曞紑鍚?br />//ATOM atom = CMainFrame::GetWndClassInfo().Register(&m_pfnSuperWindowProc);
//榪欓噷鐨凾灝辨槸綾?nbsp;CMainFrame
//鐒跺悗閫氳繃濡備笅浠g爜,榪斿洖涓涓潤鎬佸彉閲?nbsp;static WTL::CFrameWndClassInfo wc;

CFrameWndClassInfo::Register(
&m_pfnSuperWindowProc);
//CWindowImplBaseT::m_pfnSuperWindowProc
//CWindowImplBaseT() : m_pfnSuperWindowProc(::DefWindowProc){}





 

#include <atlbase.h>
#include 
<atlwin.h>


//鍙夌殑娑堟伅澶勭悊綾?/span>
template <typename T>
class CPaintBkgnd : public CMessageMap
{
public:
    BEGIN_MSG_MAP(CPaintBkgnd)
        MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBkgnd)
    END_MSG_MAP()

    LRESULT OnEraseBkgnd(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL
& bHandled)
    {
        T
*   pT = static_cast<T*>(this);
        HDC  dc 
= (HDC)wParam;
        RECT rcClient;
        pT
->GetClientRect ( &rcClient );
        ::FillRect(dc, 
&rcClient, CreateSolidBrush(RGB(0xff,0x66,0x99)) );
        
return 1
    }
};

class CMyWindow : 
    
public CWindowImpl<CMyWindow, CWindow,CFrameWinTraits>,
    
public CPaintBkgnd<CMyWindow>
                    
{
public:
    
//DECLARE_WND_CLASS(_T("abc"))
    BEGIN_MSG_MAP(CMyWindow)
        MESSAGE_HANDLER(WM_CREATE, OnCreate)
        MESSAGE_HANDLER(WM_CLOSE, OnClose)
        
//CHAIN_MSG_MAP(CPaintBkgnd)
        MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBkgnd)
    END_MSG_MAP()

    LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL
& bHandled)
    {
        ATLTRACE(
"WM_CREATE==0x0001,MSG ID:0x%u\n",uMsg);
        
return 0;
    }
    LRESULT OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL
& bHandled)
    {
        DestroyWindow();
        PostQuitMessage(
0);
        
return 0;
    }
    LRESULT OnEraseBkgnd(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL
& bHandled)
    {
        HDC  dc 
= (HDC) wParam;
        RECT rcClient;
        
this->GetClientRect ( &rcClient );
        ::FillRect(dc, 
&rcClient, CreateSolidBrush(RGB(0xff,0x66,0x00)) );
        
return 1
    }
};


int _tWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPTSTR lpstrCmdLine, int nCmdShow)
{
    CMyWindow wndMain;
    HWND hWnd 
= wndMain.Create(NULL,NULL,"good luck Aaron");
    
if (hWnd==NULL)
    {
        ::MessageBox(NULL,
"鍒涘緩紿楀彛澶辮觸","鎻愮ず",MB_OK);
    }
    wndMain.ShowWindow(nCmdShow);
    wndMain.UpdateWindow();

    MSG msg;
    
while ( GetMessage ( &msg, NULL, 00 ) > 0 )
    {
        TranslateMessage ( 
&msg );
        DispatchMessage ( 
&msg );
    }
    
return 0;
}

 



澶╀笅 2011-12-03 11:54 鍙戣〃璇勮
]]>
WTL璧勬簮http://m.shnenglu.com/aaxron/archive/2011/08/19/153845.html澶╀笅澶╀笅Fri, 19 Aug 2011 05:36:00 GMThttp://m.shnenglu.com/aaxron/archive/2011/08/19/153845.htmlhttp://m.shnenglu.com/aaxron/comments/153845.htmlhttp://m.shnenglu.com/aaxron/archive/2011/08/19/153845.html#Feedback0http://m.shnenglu.com/aaxron/comments/commentRss/153845.htmlhttp://m.shnenglu.com/aaxron/services/trackbacks/153845.htmlWTL
http://wtl.sourceforge.net/

VISUALFC
http://code.google.com/p/visualfc/downloads/list


WTLHELPER
Sourceforge 涓婄殑欏圭洰宸茬粡寤虹珛璧鋒潵浜? 緗戝潃鏄?   
http://sourceforge.net/projects/wtlhelper9


http://www.codeproject.com/KB/macros/wtlhelper.aspx

澶╀笅 2011-08-19 13:36 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久深夜福利免费观看| 亚洲欧美另类国产| 亚洲精品视频在线看| 国产一区自拍视频| 国产精品欧美久久久久无广告| 欧美紧缚bdsm在线视频| 欧美激情1区2区| 欧美日韩在线观看视频| 国产精品第三页| 国产女主播一区| 一区二区久久久久久| 亚洲视频一区二区| 9色国产精品| 日韩视频一区二区| 亚洲视频你懂的| 欧美亚洲在线播放| 久久久亚洲人| 亚洲国产成人高清精品| 免费久久精品视频| 亚洲国产精品成人综合| 亚洲精品网站在线播放gif| 一本色道久久88综合亚洲精品ⅰ | 国产日本欧美一区二区| 国产在线一区二区三区四区| 久久天堂国产精品| 久久精品国产99| 欧美成人精品一区| 亚洲精品久久久久中文字幕欢迎你| 亚洲精品一区二区三区在线观看 | 亚洲人成人一区二区在线观看| 亚洲美女av在线播放| 香蕉久久夜色精品| 欧美成人午夜77777| 国产精品久久久久永久免费观看| 激情成人av在线| 91久久综合| 欧美一区二区精美| 亚洲电影一级黄| 亚洲毛片在线| 中国av一区| 久久九九有精品国产23| 欧美日韩一区二区在线观看视频| 国内偷自视频区视频综合| 99xxxx成人网| 欧美电影专区| 久久aⅴ国产欧美74aaa| 国产精品福利网| 日韩视频不卡中文| 欧美国产精品中文字幕| 久久精品女人| 国产热re99久久6国产精品| 亚洲深夜福利网站| 亚洲国产精品小视频| 久久久久久久精| 国产亚洲一区二区三区| 欧美在线观看一区二区| 亚洲第一天堂av| 亚洲欧美国产制服动漫| 久久躁狠狠躁夜夜爽| 99国产一区| 欧美高清日韩| 亚洲黄色精品| 蜜桃久久av| 久久久久在线观看| 国产一区二区三区在线免费观看| 亚洲一区二区少妇| 亚洲日本国产| 欧美片网站免费| 99一区二区| 亚洲精品久久久一区二区三区| 卡通动漫国产精品| 亚洲国产日韩在线一区模特| 免费黄网站欧美| 欧美高清视频| 久久疯狂做爰流白浆xx| 久久欧美中文字幕| 午夜视频一区| 国产一区深夜福利| 久久综合色影院| 免费视频亚洲| 亚洲免费观看在线观看| 亚洲国产一成人久久精品| 欧美国产免费| 亚洲影视在线播放| 先锋影音国产一区| 悠悠资源网久久精品| 亚洲高清免费在线| 欧美日韩一区自拍| 久久精品欧美日韩| 国产欧美一区二区精品忘忧草| 亚洲一区二区不卡免费| 99香蕉国产精品偷在线观看| 欧美大片91| 国产精品久久久久久久久婷婷| aa级大片欧美三级| 国产精品99久久99久久久二8| 欧美日韩一区二区三区四区在线观看| 亚洲一区二区三区涩| 小处雏高清一区二区三区| 在线不卡视频| 一本久道久久综合婷婷鲸鱼| 国产精品综合不卡av| 免费国产自线拍一欧美视频| 欧美欧美全黄| 久久欧美中文字幕| 欧美三级不卡| 免费欧美电影| 国产精品视频专区| 亚洲国产欧美日韩精品| 国产日韩欧美一区二区三区在线观看 | 欧美精品电影| 久久久精彩视频| 欧美视频一区二区在线观看| 可以看av的网站久久看| 欧美三级网页| 亚洲国产精品尤物yw在线观看| 国产免费成人av| 亚洲美女av电影| 亚洲欧洲精品一区二区精品久久久| 中文亚洲视频在线| 9久草视频在线视频精品| 久久久水蜜桃| 久久久亚洲欧洲日产国码αv| 国产精品爱久久久久久久| 激情综合网激情| 久久精品亚洲精品国产欧美kt∨| 亚洲国产视频一区二区| 亚洲在线免费观看| 欧美一区二区精品| 宅男噜噜噜66一区二区| 久久综合色8888| 久久精品国产精品亚洲综合| 欧美性大战久久久久久久蜜臀| 亚洲国产高清一区| 亚洲国产黄色片| 亚洲小少妇裸体bbw| 国模一区二区三区| 亚洲欧美日韩视频一区| 亚洲欧美日韩综合国产aⅴ| 欧美日韩福利| 日韩亚洲欧美在线观看| 久久国产精品久久久久久久久久| 欧美激情小视频| 女人色偷偷aa久久天堂| 欧美在线看片| 欧美性事免费在线观看| 亚洲三级视频| 日韩视频一区二区三区| 久久亚洲国产精品日日av夜夜| 久久精品国产99国产精品| 国产欧美日韩一区| 欧美诱惑福利视频| 麻豆91精品91久久久的内涵| 国产亚洲成年网址在线观看| 欧美一级免费视频| 久久夜色精品国产| 曰韩精品一区二区| 欧美chengren| 一区二区三区视频在线看| 亚洲欧美www| 国产亚洲毛片在线| 久久免费视频在线| 亚洲精品免费观看| 99在线精品观看| 久久国产精品久久久| 久久久久久久久久久一区 | 日韩一本二本av| 欧美日韩日本国产亚洲在线| 一区二区欧美视频| 久久久久国产一区二区三区| 在线观看亚洲a| 欧美精品一区在线发布| 亚洲一卡久久| 欧美xxxx在线观看| 亚洲午夜未删减在线观看| 国产欧美一区视频| 欧美国产精品中文字幕| 亚洲欧美视频在线观看| 欧美大色视频| 午夜精品区一区二区三| 国产色婷婷国产综合在线理论片a| 日韩午夜在线视频| 欧美在线观看www| 亚洲国产精品电影| 国产精品久久久久毛片软件 | 欧美亚洲专区| 永久555www成人免费| 欧美日韩另类视频| 久久精品国产99精品国产亚洲性色 | 欧美一进一出视频| 亚洲国产精品va在看黑人| 午夜亚洲福利在线老司机| 在线播放一区| 国产麻豆日韩欧美久久| 欧美精品aa| 国产日韩欧美电影在线观看| 久久精品国产久精国产一老狼| 亚洲狼人精品一区二区三区| 蜜桃av一区| 久久激情久久|