锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久福利资源国产精品999,伊人久久大香线蕉av一区,很黄很污的网站久久mimi色http://www.shnenglu.com/aqazero/category/1964.htmlzh-cnFri, 07 Feb 2020 14:03:47 GMTFri, 07 Feb 2020 14:03:47 GMT60Use Skia in MFC or Win32 applicationhttp://www.shnenglu.com/aqazero/archive/2020/02/07/217109.htmlbrentbrentThu, 06 Feb 2020 23:53:00 GMThttp://www.shnenglu.com/aqazero/archive/2020/02/07/217109.htmlhttp://www.shnenglu.com/aqazero/comments/217109.htmlhttp://www.shnenglu.com/aqazero/archive/2020/02/07/217109.html#Feedback0http://www.shnenglu.com/aqazero/comments/commentRss/217109.htmlhttp://www.shnenglu.com/aqazero/services/trackbacks/217109.htmlWhat is Skia

Skia is an open source 2D graphics library which provides common APIs that work across a variety of hardware and software platforms. It serves as the graphics engine for Google Chrome and Chrome OS, Android, Mozilla Firefox and Firefox OS, and many other products.

How to download and build Skia

Just follow https://skia.org/user/download, and do it step by step, we will need a static build for use lately.

How to use Skia in a MFC application

1. Create your MFC application

2. Add Skia path to "VC++ Directories" of the project



3. Add Skia library paths to "Additional Library Directories"



4. Add "uafxcw.lib;LIBCMT.lib;opengl32.lib;glu32.lib;skia.lib;sk_app.GLWindowContext.obj;sk_app.GLWindowContext_win.obj" to "Additional Dependencies". Add "uafxcw.lib;LIBCMT.lib;" to "Ignore Specific Default Libraries."



5. In XXXDlg.h:
#include "tools\sk_app\DisplayParams.h"
#include "tools\sk_app\WindowContext.h"

protected:
HICON m_hIcon;
sk_app::DisplayParams m_paras;
std::unique_ptr<sk_app::WindowContext> m_skaContext;

6. In XXXDlg.cpp:

#include "include\core\SkPoint.h"
#include "include\core\SkFont.h"
#include "include\core\SkCanvas.h"
#include "include\core\SkSurface.h"
#include "tools\sk_app\win\WindowContextFactory_win.h"
using namespace sk_app;

BOOL XXXDlg::OnInitDialog()
{
m_skaContext = window_context_factory::MakeGLForWin(m_hWnd, m_paras);
return TRUE;
}

void XXXDlg::OnSize(UINT nType, int cx, int cy)
{
if(m_skaContext)
m_skaContext->resize(cx, cy);
}

void XXXDlg::OnPaint()
{
sk_sp<SkSurface> backbuffer = m_skaContext->getBackbufferSurface();
if (backbuffer) {
SkCanvas* c = backbuffer->getCanvas();
c->clear(SK_ColorWHITE);
SkPaint p(SkColors::kBlack);
c->drawLine(SkPoint::Make(0, 0), SkPoint::Make(m_skaContext->width(), m_skaContext->height()), p);

static const char message[] = "Hello World";

SkFont font;
font.setSubpixel(true);
font.setSize(20);
c->drawSimpleText(message, strlen(message), SkTextEncoding::kUTF8, 0, m_skaContext->height() -2, font, p);
backbuffer->flush();

m_skaContext->swapBuffers();
}
}

7. If everything is OK, the result will be:




brent 2020-02-07 07:53 鍙戣〃璇勮
]]>
polygon offset demo (Fifth and Final version) (Updated)http://www.shnenglu.com/aqazero/archive/2010/09/09/126241.htmlbrentbrentThu, 09 Sep 2010 07:27:00 GMThttp://www.shnenglu.com/aqazero/archive/2010/09/09/126241.htmlhttp://www.shnenglu.com/aqazero/comments/126241.htmlhttp://www.shnenglu.com/aqazero/archive/2010/09/09/126241.html#Feedback20http://www.shnenglu.com/aqazero/comments/commentRss/126241.htmlhttp://www.shnenglu.com/aqazero/services/trackbacks/126241.htmlhttp://www.shnenglu.com/Files/aqazero/OffsetDemo6.zip



brent 2010-09-09 15:27 鍙戣〃璇勮
]]>
Polygon offset demo (3rd)http://www.shnenglu.com/aqazero/archive/2010/09/05/125942.htmlbrentbrentSun, 05 Sep 2010 10:01:00 GMThttp://www.shnenglu.com/aqazero/archive/2010/09/05/125942.htmlhttp://www.shnenglu.com/aqazero/comments/125942.htmlhttp://www.shnenglu.com/aqazero/archive/2010/09/05/125942.html#Feedback1http://www.shnenglu.com/aqazero/comments/commentRss/125942.htmlhttp://www.shnenglu.com/aqazero/services/trackbacks/125942.html

http://www.shnenglu.com/Files/aqazero/OffsetDemo6.zip



brent 2010-09-05 18:01 鍙戣〃璇勮
]]>
Polygon Offset Demo (Updated)http://www.shnenglu.com/aqazero/archive/2010/09/04/125861.htmlbrentbrentSat, 04 Sep 2010 03:25:00 GMThttp://www.shnenglu.com/aqazero/archive/2010/09/04/125861.htmlhttp://www.shnenglu.com/aqazero/comments/125861.htmlhttp://www.shnenglu.com/aqazero/archive/2010/09/04/125861.html#Feedback6http://www.shnenglu.com/aqazero/comments/commentRss/125861.htmlhttp://www.shnenglu.com/aqazero/services/trackbacks/125861.html

http://www.shnenglu.com/Files/aqazero/OffsetDemo6.zip



brent 2010-09-04 11:25 鍙戣〃璇勮
]]>
Polygon Offset Demohttp://www.shnenglu.com/aqazero/archive/2010/09/02/125691.htmlbrentbrentThu, 02 Sep 2010 14:25:00 GMThttp://www.shnenglu.com/aqazero/archive/2010/09/02/125691.htmlhttp://www.shnenglu.com/aqazero/comments/125691.htmlhttp://www.shnenglu.com/aqazero/archive/2010/09/02/125691.html#Feedback0http://www.shnenglu.com/aqazero/comments/commentRss/125691.htmlhttp://www.shnenglu.com/aqazero/services/trackbacks/125691.html

http://www.shnenglu.com/Files/aqazero/OffsetDemo6.zip



brent 2010-09-02 22:25 鍙戣〃璇勮
]]>
Speed test: deflation of random 500 points and 1000 points polygon.http://www.shnenglu.com/aqazero/archive/2010/09/01/125505.htmlbrentbrentWed, 01 Sep 2010 02:29:00 GMThttp://www.shnenglu.com/aqazero/archive/2010/09/01/125505.htmlhttp://www.shnenglu.com/aqazero/comments/125505.htmlhttp://www.shnenglu.com/aqazero/archive/2010/09/01/125505.html#Feedback0http://www.shnenglu.com/aqazero/comments/commentRss/125505.htmlhttp://www.shnenglu.com/aqazero/services/trackbacks/125505.html

http://www.shnenglu.com/Files/aqazero/OffsetDemo5_8.zip


 



brent 2010-09-01 10:29 鍙戣〃璇勮
]]>
Polygon offset with holes (Expansion and Deflation of polygons with holes)http://www.shnenglu.com/aqazero/archive/2010/09/01/125497.htmlbrentbrentWed, 01 Sep 2010 02:03:00 GMThttp://www.shnenglu.com/aqazero/archive/2010/09/01/125497.htmlhttp://www.shnenglu.com/aqazero/comments/125497.htmlhttp://www.shnenglu.com/aqazero/archive/2010/09/01/125497.html#Feedback0http://www.shnenglu.com/aqazero/comments/commentRss/125497.htmlhttp://www.shnenglu.com/aqazero/services/trackbacks/125497.html

http://www.shnenglu.com/Files/aqazero/OffsetDemo6.zip



brent 2010-09-01 10:03 鍙戣〃璇勮
]]>
澶氳竟褰㈢瓑璺濈嚎綆楁硶鐨勫疄鐜?/title><link>http://www.shnenglu.com/aqazero/archive/2010/08/25/124744.html</link><dc:creator>brent</dc:creator><author>brent</author><pubDate>Wed, 25 Aug 2010 15:10:00 GMT</pubDate><guid>http://www.shnenglu.com/aqazero/archive/2010/08/25/124744.html</guid><wfw:comment>http://www.shnenglu.com/aqazero/comments/124744.html</wfw:comment><comments>http://www.shnenglu.com/aqazero/archive/2010/08/25/124744.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/aqazero/comments/commentRss/124744.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/aqazero/services/trackbacks/124744.html</trackback:ping><description><![CDATA[<p><a title=http://www.shnenglu.com/Files/aqazero/OffsetDemo6.zip href="http://www.shnenglu.com/Files/aqazero/OffsetDemo6.zip">http://www.shnenglu.com/Files/aqazero/OffsetDemo6.zip</a></p> <img src ="http://www.shnenglu.com/aqazero/aggbug/124744.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/aqazero/" target="_blank">brent</a> 2010-08-25 23:10 <a href="http://www.shnenglu.com/aqazero/archive/2010/08/25/124744.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>simulate OnIdle in MFC ActiveX controlhttp://www.shnenglu.com/aqazero/archive/2010/04/15/112672.htmlbrentbrentThu, 15 Apr 2010 07:49:00 GMThttp://www.shnenglu.com/aqazero/archive/2010/04/15/112672.htmlhttp://www.shnenglu.com/aqazero/comments/112672.htmlhttp://www.shnenglu.com/aqazero/archive/2010/04/15/112672.html#Feedback0http://www.shnenglu.com/aqazero/comments/commentRss/112672.htmlhttp://www.shnenglu.com/aqazero/services/trackbacks/112672.html
Method A:
::SetWindowsHookEx(WH_FOREGROUNDIDLE, YourIdleProc, AfxGetInstanceHandle(), GetCurrentThreadId());

Method B (my way):
 1 static HHOOK s_hGetMsgHook = NULL;
 2 
 3 LRESULT FAR PASCAL GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam)
 4 {
 5     AFX_MANAGE_STATE(AfxGetStaticModuleState( ));
 6 
 7     LPMSG lpMsg = (LPMSG) lParam;
 8     if( (nCode >= 0&& PM_REMOVE == wParam)
 9     {
10         //your code here. maybe to deal with hot-keys, accelerators ...
11         //see http://support.microsoft.com/kb/187988
12 
13         //my code to simulate OnIdle
14         static BOOL bIdle = FALSE;
15         CWinApp* pApp = AfxGetApp();
16         if(!bIdle && pApp->IsIdleMessage(lpMsg))
17             bIdle = TRUE;
18         
19         if(bIdle)
20         {
21             MSG msgPeek = {0};
22             if(!::PeekMessage(&msgPeek, NULL, NULL, NULL, PM_NOREMOVE))
23             {
24                 VERIFY(PostMessage(AfxGetMainWnd()->GetSafeHwnd(), WM_USER+0x120x340x56));
25             }
26         }
27 
28         if(lpMsg->hwnd == AfxGetMainWnd()->GetSafeHwnd() &&
29             lpMsg->message == WM_USER+0x12 && lpMsg->wParam == 0x34 && lpMsg->lParam == 0x56)
30         {
31             lpMsg->message = WM_NULL;
32             lpMsg->lParam = 0L;
33             lpMsg->wParam = 0L;
34 
35             pApp->OnIdle(0);
36             bIdle = FALSE;
37         }
38     }
39 
40     return ::CallNextHookEx(s_hGetMsgHook, nCode, wParam, lParam);
41 }
42 
43 int CYourOleControl::OnCreate(LPCREATESTRUCT lpCreateStruct) 
44 {
45     //...
46     
47     if(NULL == s_hGetMsgHook)
48         s_hGetMsgHook = ::SetWindowsHookEx(WH_GETMESSAGE, GetMsgProc, AfxGetInstanceHandle(), GetCurrentThreadId());
49 }
50 
51 void CYourOleControl::OnDestroy() 
52 {
53     //...
54     
55     ::UnhookWindowsHookEx(s_hGetMsgHook);
56     s_hGetMsgHook = NULL;
57 
58     COleControl::OnDestroy();
59 }

Method A is far more simple, but with Method B:

1) You can override CWinApp::IsIdleMessage to filter some special messages, such as a frequent timer which will not affect what you want to do in CWinApp::OnIdle. Because timer will affect message queue and if you don't filter it, OnIdle will be called every time after the timer is invoked.

2) Sometimes your action in OnIdle will affect message queue inevitably, thus you will get a infinite loop: OnIdle->the special messages in message queue->OnIdle->... But with Method B, with SPY++ you can find the special messages, and filter them in IsIdleMessage.


brent 2010-04-15 15:49 鍙戣〃璇勮
]]>
榪欐槸涓緢鐙$尵鐨刡ug銆?/title><link>http://www.shnenglu.com/aqazero/archive/2010/03/04/108868.html</link><dc:creator>brent</dc:creator><author>brent</author><pubDate>Thu, 04 Mar 2010 03:12:00 GMT</pubDate><guid>http://www.shnenglu.com/aqazero/archive/2010/03/04/108868.html</guid><wfw:comment>http://www.shnenglu.com/aqazero/comments/108868.html</wfw:comment><comments>http://www.shnenglu.com/aqazero/archive/2010/03/04/108868.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.shnenglu.com/aqazero/comments/commentRss/108868.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/aqazero/services/trackbacks/108868.html</trackback:ping><description><![CDATA[鏌愬ぉ錛?鍙戠幇涓涓猙ug錛?浼氬鑷磖elease鐗堟湰涓嬪紓甯革紝 浣嗗湪debug鐗堟湰涓嬫甯革紝 鍙互瀹氫綅璇ug鍦ㄤ笅闈唬鐮佷腑錛?br> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">void</span><span style="color: #000000;"> CMoveHandlerStateDraw::OnLButtonUp(UINT nFlags, CPoint point)<br>{<br>    <img src="http://www.shnenglu.com/Images/dot.gif"><br>    <br>    AdjustPoint(point);<br><br>    m_pHandler</span><span style="color: #000000;">-></span><span style="color: #000000;">Drop(point, m_ptHandlerPos);<br><br>    <img src="http://www.shnenglu.com/Images/dot.gif"><br>}</span></div> 浣嗘槸錛屼竴鏃﹀線榪欎釜鍑芥暟涓彃鍏ョ敤鏉ump鏁版嵁鐨勪唬鐮侊紝 bug灝變笉鍐嶅嚭鐜幫紝 涓嶈鏄皢鏁版嵁鍐欏埌鏂囦歡榪樻槸鏄劇ず鍦╩essagebox涓娿?<br>鍚敤release鐗堟湰鐨?Debug Information"錛?bug涔熶笉鍐嶅嚭鐜般?br>灝辯畻鍙槸鍦?span style="color: #000000;">璇ュ嚱鏁頒腑澹版槑涓涓狢String鍙橀噺錛?榪欎釜鐙$尵鐨刡ug浼間箮椹笂灝辯煡閬擄紝椹笂灝辮棌璧鋒潵錛?鎶婅繖涓彉閲忎竴鍘繪帀錛?瀹冮┈涓婂張璺戝嚭鏉ヤ簡銆?br><br>浣嗗悗鏉ュ彂鐜幫紝 榪欏彧鏄竴鍙緢鏅氱殑bug錛屾牴鏈病浠涔堣秴鑳藉姏銆?br><br>鑱槑鐨勪綘錛岀煡閬撹繖鏄負浠涔堝悧錛?br><br></span> <img src ="http://www.shnenglu.com/aqazero/aggbug/108868.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/aqazero/" target="_blank">brent</a> 2010-03-04 11:12 <a href="http://www.shnenglu.com/aqazero/archive/2010/03/04/108868.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>vista windows 7 areo progress barhttp://www.shnenglu.com/aqazero/archive/2009/11/06/100283.htmlbrentbrentFri, 06 Nov 2009 03:56:00 GMThttp://www.shnenglu.com/aqazero/archive/2009/11/06/100283.htmlhttp://www.shnenglu.com/aqazero/comments/100283.htmlhttp://www.shnenglu.com/aqazero/archive/2009/11/06/100283.html#Feedback0http://www.shnenglu.com/aqazero/comments/commentRss/100283.htmlhttp://www.shnenglu.com/aqazero/services/trackbacks/100283.html
http://stackoverflow.com/questions/313792/disabling-progress-bar-animation-on-vista-aero
http://msdn.microsoft.com/en-us/library/aa511486.aspx

鐢?meters"? 娌$┖鍟娿?br>
鎴戠殑鏆村姏鏂規硶鏄細
g_xpStyle.SetWindowTheme(m_hProgressWnd, L"",L"");

g_xpStyle 灝辨槸閭d釜 CVisualStylesXP錛?google 涓涓嬪氨鏈変簡銆?br>

brent 2009-11-06 11:56 鍙戣〃璇勮
]]>
浠庤祫婧愪腑鍔犺澆jpg, png鍒癎DI+ Imagehttp://www.shnenglu.com/aqazero/archive/2009/11/05/100221.htmlbrentbrentThu, 05 Nov 2009 08:01:00 GMThttp://www.shnenglu.com/aqazero/archive/2009/11/05/100221.htmlhttp://www.shnenglu.com/aqazero/comments/100221.htmlhttp://www.shnenglu.com/aqazero/archive/2009/11/05/100221.html#Feedback0http://www.shnenglu.com/aqazero/comments/commentRss/100221.htmlhttp://www.shnenglu.com/aqazero/services/trackbacks/100221.html
1錛?鏄疊itmap(RT_BITMAP)綾誨瀷鐨勫浘鐗囨棤娉曞姞杞斤紝 RT_BITMAP鏄瀹氫箟綾誨瀷錛?璧勬簮閲岄潰娌℃湁bmp鏂囦歡鐨勫ご錛?SizeofResource 鐨勮繑鍥炲艱姣斿浘鐗囨枃浠?/span>灝戝嚑涓瓧鑺傦紝鍥犱負灝戜簡榪欏嚑涓瓧鑺傦紝 鎵浠DI+浼氳繑鍥瀒nvalid parameter閿欒銆?br>
2錛?浠?span style="color: #000000;">IStream
閲岄潰鍒涘緩鍑烘潵鐨処mage瀵硅薄浼間箮浼氬紩鐢ㄥ埌鍫嗛噷闈㈢殑鍐呭瓨錛?濡傛灉hBuffer琚噴鏀句簡錛?鍒涘緩鐨処mage鐨勫唴瀹瑰氨浼氳鐮村潖錛屾湁鏃跺彧鑳界敾鍑轟竴灝忛儴鍒嗗浘鐗囷紝 鏈夋椂鏁翠釜鍥劇墖灝辨槸絀虹櫧錛?瑙嗗綋鏃剁殑鍐呭瓨鐘跺喌鑰屽畾銆傝皟鐢↖mage鐨凜lone涔熸病鐢ㄣ?br>

CYourClass::~CYourClass()
{
    
for(IMG_VECTOR::iterator it = m_arImage.begin(); it != m_arImage.end(); it++)
        delete 
*it;
    
for(HGLB_VECTOR::iterator it = m_arGlobal.begin(); it != m_arGlobal.end(); it++)
    {
        ::GlobalUnlock(
*it);
        ::GlobalFree(
*it);
    }
}

void CYourClass::AddImage(HMODULE hInst, UINT nResourceID, LPCTSTR lpType)
{
    
if(lpType == RT_BITMAP)
    {
        
//GDI+ can not load RT_BITMAP resouce, 
        
//because they are predefined resource, 
        
//they don't contains the image file header.
        assert(FALSE);
        
return;
    }

    HRSRC hResource 
= ::FindResource(hInst, MAKEINTRESOURCE(nResourceID), lpType);
    
if (!hResource)
        
return;

    DWORD imageSize 
= ::SizeofResource(hInst, hResource);
    
if (!imageSize)
        
return;

    
const void* pResourceData = ::LockResource(::LoadResource(hInst, hResource));
    
if (!pResourceData)
        
return;

    HGLOBAL hBuffer 
= ::GlobalAlloc(GMEM_FIXED, imageSize);
    
if (NULL == hBuffer)
        
return;

    
void* pBuffer = ::GlobalLock(hBuffer);
    
if (pBuffer)
    {
        CopyMemory(pBuffer, pResourceData, imageSize);
        IStream
* pStream = NULL;
        
if (::CreateStreamOnHGlobal(hBuffer, FALSE, &pStream) == S_OK)
        {
            Gdiplus::Image 
* pImage = Gdiplus::Image::FromStream(pStream);
            pStream
->Release();
            
if (pImage)
            { 
                
if (pImage->GetLastStatus() == Gdiplus::Ok &&
                    pImage
->GetWidth() > 0)
                {
                    m_arImage.push_back(pImage);
                    
//it seems the image will take usage of the global memory.
                    
//so the global memory should be kept until the image destroy.
                    m_arGlobal.push_back(hBuffer);
                    
return;
                }

                delete pImage;
            }
        }
        ::GlobalUnlock(hBuffer);
    }
    ::GlobalFree(hBuffer);
}



brent 2009-11-05 16:01 鍙戣〃璇勮
]]>
鎭ㄤ笉鐩擱㈡湭瀚佹椂http://www.shnenglu.com/aqazero/archive/2009/10/29/99731.htmlbrentbrentThu, 29 Oct 2009 03:56:00 GMThttp://www.shnenglu.com/aqazero/archive/2009/10/29/99731.htmlhttp://www.shnenglu.com/aqazero/comments/99731.htmlhttp://www.shnenglu.com/aqazero/archive/2009/10/29/99731.html#Feedback0http://www.shnenglu.com/aqazero/comments/commentRss/99731.htmlhttp://www.shnenglu.com/aqazero/services/trackbacks/99731.htmlbcgcontrolbar

浜轟笘闂存渶鐥涜嫤鐨勪簨鑾繃浜庢銆?br>


brent 2009-10-29 11:56 鍙戣〃璇勮
]]>
create mfc dialog by template will drive you mad.http://www.shnenglu.com/aqazero/archive/2008/11/19/67287.htmlbrentbrentWed, 19 Nov 2008 07:10:00 GMThttp://www.shnenglu.com/aqazero/archive/2008/11/19/67287.htmlhttp://www.shnenglu.com/aqazero/comments/67287.htmlhttp://www.shnenglu.com/aqazero/archive/2008/11/19/67287.html#Feedback0http://www.shnenglu.com/aqazero/comments/commentRss/67287.htmlhttp://www.shnenglu.com/aqazero/services/trackbacks/67287.html
And now, sometimes , i need CMyDialog to be a model dialog (WS_POPUP), sometimes be a child of another dialog(WS_CHILD).

How to make this done without duplicating the template in resource?

Call ModifyStyle after creation? Failed
Modify the LPCREATESTRUCT's style in CMyDialog::OnCreate ? Failed.
Override PreCreateWindow? Failed.

After a lot of tracing and a lot of googling. I worked out something like this:

BOOL CMyDialog::CreateAsChild(CWnd * pParent)
{
    
if(!IsWindow(pParent->GetSafeHwnd()))
        
return FALSE;

    m_lpszTemplateName 
= ATL_MAKEINTRESOURCE(IDD_WALLLAYER_PROPERTYPAGE);  // used for help
    if (m_nIDHelp == 0)
        m_nIDHelp 
= LOWORD((DWORD_PTR)m_lpszTemplateName);

    HINSTANCE hInst 
= AfxFindResourceHandle(m_lpszTemplateName, RT_DIALOG);
    HRSRC hResource 
= ::FindResource(hInst, m_lpszTemplateName, RT_DIALOG);
    HGLOBAL hTemplate 
= LoadResource(hInst, hResource);
    LPCDLGTEMPLATE lpDialogTemplate 
= (LPCDLGTEMPLATE)LockResource(hTemplate);
    DLGTEMPLATEEX
* lpDlgTmpEx = (DLGTEMPLATEEX* )lpDialogTemplate;
    DWORD dwOldStyle 
= 0;
    BOOL bIsDlgEx 
= lpDlgTmpEx->signature == 0xFFFF;
    
if(bIsDlgEx)
    {
        dwOldStyle 
= lpDlgTmpEx->style;
        lpDlgTmpEx
->style = DS_SETFONT | WS_CHILD;
    }
    
else
    {
        dwOldStyle 
= ((LPDLGTEMPLATE)lpDialogTemplate)->style;
        ((LPDLGTEMPLATE)lpDialogTemplate)
->style = DS_SETFONT | WS_CHILD;
    }
    m_lpDialogInit 
= NULL;
    BOOL bResult 
= CreateDlgIndirect(lpDialogTemplate, pParent, hInst);
    
if(bIsDlgEx)
        lpDlgTmpEx
->style = dwOldStyle;
    
else
        ((LPDLGTEMPLATE)lpDialogTemplate)
->style = dwOldStyle;
    UnlockResource(hTemplate);
    FreeResource(hTemplate);
    
return bResult;
}

If you need your dialog to behavior as WS_POPUP or WS_CHILD without duplicating your dialog template, you just get an ugly answer. And anyone who know another better way, let me know please.

MFC


brent 2008-11-19 15:10 鍙戣〃璇勮
]]>
鍥懼艦鏂囨湰緙栬緫鍣ㄧ殑婧愮爜鍜岀畝鍗曟枃妗?/title><link>http://www.shnenglu.com/aqazero/archive/2008/08/27/60165.html</link><dc:creator>brent</dc:creator><author>brent</author><pubDate>Wed, 27 Aug 2008 08:05:00 GMT</pubDate><guid>http://www.shnenglu.com/aqazero/archive/2008/08/27/60165.html</guid><wfw:comment>http://www.shnenglu.com/aqazero/comments/60165.html</wfw:comment><comments>http://www.shnenglu.com/aqazero/archive/2008/08/27/60165.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.shnenglu.com/aqazero/comments/commentRss/60165.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/aqazero/services/trackbacks/60165.html</trackback:ping><description><![CDATA[鎴戣鐨勫浘褰㈡枃鏈紪杈戝櫒涓嶆槸綰枃鏈紪杈戯紝瑙?<a target="_blank" title="鑷繁瀹炵幇鍥懼艦鏂囨湰緙栬緫鍣? href="http://www.shnenglu.com/aqazero/archive/2006/12/01/15835.html">鑷繁瀹炵幇鍥懼艦鏂囨湰緙栬緫鍣?/a> 鎴栬?<a target="_blank" title="Graphical text proposal (draft)" >Graphical Text Proposal (Draft)</a><br><br><a target="_blank" title="Demo 鍦板潃" href="http://www.shnenglu.com/Files/aqazero/BrentEditor_demo.zip">Demo EXE 鍦板潃</a> (鏃犲叕瀹籌紝鍥犱負鏄敤wxWidgets錛岃繛Icon閮芥病鏈夛紝緇忓父鎶婁漢緇欏悡鐫浜嗐傝紼嬪簭瀵圭‖浠舵棤瑕佹眰錛屽浣跨敤鑰呮湁涓瀹氳姹?..)<br><br><a target="_blank" title="婧愪唬鐮? href="http://www.shnenglu.com/Files/aqazero/BrentEditor.rar">婧愪唬鐮佸湴鍧</a><br><br>緙栬瘧闇瑕?a target="_blank" title="wxWidgets" >wxWidgets</a>銆傚湪榪欎箣鍚庡啀娌$敤榪噖xWidgets浜嗭紝鎰熻灝辨槸鍙︿竴濂桵FC銆?br><br>鎶撲釜鍥?<br><img src="http://www.shnenglu.com/images/cppblog_com/aqazero/editor.JPG" border="0"><br><br>鍐欏埌Table鍜屽鍑篽tml閮ㄥ垎鐨勬椂鍊欏氨鍔涗笉浠庡績浜嗭紝鑽夎崏浜嗕簨銆?瀵煎嚭html鏄仛寰楁渶浜烘ā鐙楁牱錛屼絾鍗存渶璐ョ誕鍏朵腑鐨勯儴鍒嗐?鑻辨枃鐗堟搷浣滅郴緇熶笅瀵煎嚭html浼歝rash錛屽師鍥犳湭鐭?<br><br>涓鐩存湁鐢–#閲嶆柊鍐欎竴涓殑鍐插姩錛屽彧鏄埌鏃朵竴瀹氬張鏄檸澶磋泧灝俱?br> <img src ="http://www.shnenglu.com/aqazero/aggbug/60165.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/aqazero/" target="_blank">brent</a> 2008-08-27 16:05 <a href="http://www.shnenglu.com/aqazero/archive/2008/08/27/60165.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>璋佽兘鍛婅瘔鎴戞湁娌℃湁紼嬪簭鍛樹笓鐢ㄩ敭鐩橈紵鎴戣C++璇硶鐨勯偅縐?_-!http://www.shnenglu.com/aqazero/archive/2008/06/06/52365.htmlbrentbrentFri, 06 Jun 2008 07:00:00 GMThttp://www.shnenglu.com/aqazero/archive/2008/06/06/52365.htmlhttp://www.shnenglu.com/aqazero/comments/52365.htmlhttp://www.shnenglu.com/aqazero/archive/2008/06/06/52365.html#Feedback4http://www.shnenglu.com/aqazero/comments/commentRss/52365.htmlhttp://www.shnenglu.com/aqazero/services/trackbacks/52365.html
http://www.kaufmann.no/roland/dvorak/

take your time and enjoy yourself -_-!



brent 2008-06-06 15:00 鍙戣〃璇勮
]]>
Create projects easily with private MFC, ATL and CRT assemblieshttp://www.shnenglu.com/aqazero/archive/2008/05/21/50660.htmlbrentbrentWed, 21 May 2008 09:51:00 GMThttp://www.shnenglu.com/aqazero/archive/2008/05/21/50660.htmlhttp://www.shnenglu.com/aqazero/comments/50660.htmlhttp://www.shnenglu.com/aqazero/archive/2008/05/21/50660.html#Feedback0http://www.shnenglu.com/aqazero/comments/commentRss/50660.htmlhttp://www.shnenglu.com/aqazero/services/trackbacks/50660.htmlhttp://www.codeproject.com/KB/cpp/PrivateAssemblyProjects.aspx

"$(DevEnvDir)..\..\VC\bin\mt.exe" -manifest "$(TargetDir)release.manifest"  –outputresource:"$(TargetDir)$(TargetFileName)";#1

release.manifest:
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type='win32' name='Microsoft.VC80.CRT' version='8.0.50727.762' processorArchitecture='x86' />
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type='win32' name='Microsoft.VC80.MFC' version='8.0.50727.762' processorArchitecture='x86' />
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*' />
    </dependentAssembly>
  </dependency>
</assembly>

copy  C:\WINDOWS\WinSxS\Manifests\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700.manifest   D:\xxProject\bin\release\Microsoft.VC80.CRT.manifest

copy C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700\*.*  D:\xxProject\bin\release\


copy  C:\WINDOWS\WinSxS\Manifests\x86_Microsoft.VC80.MFC_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_3bf8fa05.manifest  D:\xxProject\bin\release\Microsoft.VC80.MFC.manifest

copy C:\WINDOWS\WinSxS\x86_Microsoft.VC80.MFC_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_3bf8fa05\*.*  D:\xxProject\bin\release\


brent 2008-05-21 17:51 鍙戣〃璇勮
]]>
浠や漢鍙戜腑鎸囩殑浠g爜http://www.shnenglu.com/aqazero/archive/2008/05/11/49502.htmlbrentbrentSun, 11 May 2008 03:09:00 GMThttp://www.shnenglu.com/aqazero/archive/2008/05/11/49502.htmlhttp://www.shnenglu.com/aqazero/comments/49502.htmlhttp://www.shnenglu.com/aqazero/archive/2008/05/11/49502.html#Feedback2http://www.shnenglu.com/aqazero/comments/commentRss/49502.htmlhttp://www.shnenglu.com/aqazero/services/trackbacks/49502.htmlclass CFEPBaseView
{
    CFepBaseView()
    {
       m_pCoord 
= new Coord();
    }
protected:
   CCoord 
* m_pCoord;
}

class CCutListView : public CFEPBaseView
{
    CCutListView()
    {
        m_pCoord 
= new Coord();
    }
protected:
    CCoord 
* m_pCoord;
}



brent 2008-05-11 11:09 鍙戣〃璇勮
]]>
ie helper, great!http://www.shnenglu.com/aqazero/archive/2008/03/13/44374.htmlbrentbrentThu, 13 Mar 2008 07:29:00 GMThttp://www.shnenglu.com/aqazero/archive/2008/03/13/44374.htmlhttp://www.shnenglu.com/aqazero/comments/44374.htmlhttp://www.shnenglu.com/aqazero/archive/2008/03/13/44374.html#Feedback0http://www.shnenglu.com/aqazero/comments/commentRss/44374.htmlhttp://www.shnenglu.com/aqazero/services/trackbacks/44374.html

brent 2008-03-13 15:29 鍙戣〃璇勮
]]>
render whole html pagehttp://www.shnenglu.com/aqazero/archive/2007/10/11/33986.htmlbrentbrentThu, 11 Oct 2007 15:57:00 GMThttp://www.shnenglu.com/aqazero/archive/2007/10/11/33986.htmlhttp://www.shnenglu.com/aqazero/comments/33986.htmlhttp://www.shnenglu.com/aqazero/archive/2007/10/11/33986.html#Feedback0http://www.shnenglu.com/aqazero/comments/commentRss/33986.htmlhttp://www.shnenglu.com/aqazero/services/trackbacks/33986.htmlHi,
I'm trying to render the contents of a HTML page hosted in a web
browser control so that I can save the result as an image.

There are a number of ways to do this. For example you can use any of
IHTMLElementRender,­ IViewObject or WM_PRINT. The problem with these
methods is that you only will receive the portion of the page's content
that is visible in the web browser. If the page's size is bigger than
the dimensions of the web browser these hidden or "scrollable" parts
will not get rendered in the above methods.

You could resize the browser to fit the entire page but that is not
feasible in a scenario when a user is using the browser. A second
approach is to load the page into a second hidden browser which, again,
is resized to fit the entire page. The problem with this approach is
that I can't load the document again since it's appearance could
change. I want to render exactly what's in the user's browser. AFAIK
there is know easy way to exactly clone a MSHTML document.

Does anyone (Igor?) have any clues how these "hidden" ares could be
rendered? Any help much appreciated.

Regards,
Christoffer
 
Answer:
    I took a couple of ideas from Code Project and pieced them together to
do just this. I render the client area into a small bitmap, blit it
into a final larger (page size) bitmap and scroll the control to get at
another area. This was simpler than trying to get it to render into
the correct area of the page size bitmap.

This was written for a browser control that was NOT seen by the user so
I didn't care where the final scroll position was.

1. From the IHTMLDocument interface call get_body to get the
IHTMLElement enterface.
2. Get the IHTMLElement2 interface (pBody2 in the code).
3. Call get_scrollHeight and get_scrollWidth, get_clientWidth,
get_clientHeight.
4. Get the IHTMLElementRender interface (pRenderer in the code).
5. Create a bitmap the size of the client area and select it into a
clientDC.
6. Create a bitmap the size of the scroll area and select it into a
pageDC.
7. Use some code like the following to scroll and render the page:

long x = scrollWidth;
long lastX = -1;
bool doneX = false;
while (!doneX)
{
    pBody2->put_scrollLeft(x);
    pBody2->get_scrollLeft(&x);
    if (-1 == lastX)
    lastX = x + clientWidth;
    long y = scrollHeight;
    long lastY = -1;
    bool doneY = false;
    while (!doneY)
    {
        pBody2->put_scrollTop(y);
        pBody2->get_scrollTop(&y);
        if (-1 == lastY)
        lastY = y + clientHeight;
        hr = pRenderer->DrawToDC­(clientDC);
        BitBlt(pageDC,x,y,lastX-x,lastY-y,clientDC,2,2,SRCCOPY);
        doneY = (y==0);
        lastY = y;
        y -= clientHeight-4;
    }
    doneX = (0==x);
    lastX = x;
    x -= clientWidth-4;
}

The pageDC bitmap now holds the full image of the page and you can save
it or do anything else you want. You'll note that what I'm doing is
trying to scroll too far and letting IE scroll appropriately. Also
note that I clip a 2 pixel edge when blitting. This is from actual
testing - needed to not clip the border of the control.

Hope this helps,

David Stidolph
Austin, TX

Ask:
    Thanks for the solution, but it will unfortunately not work in my case
because the control is used by a user and can therefor not be scrolled
programmatically.

My focus now is on trying to clone the MSHTML document and then load
the clone in another hidden browser contol which I can resize to fit
the entire page and then do the rendering. The way I'm currently
cloning the document is saving the HTML to disk and then replacing all
references (images, .js, .css., ...) in the HTML document with local
ones which I have downloaded from the originating server (will do this
as a last resort), the cache or (in the cases where it's possible)
copied directly from the MSHTML document. When that is done I have a
local copy which a can browse to. Does anyone know of a better way to
clone a MSHTML document?

Answer:
    How about using a LockWindowUpdate call before the snapshot and
then unlocking it after? That way, the user never knows the WB
scrolled.


brent 2007-10-11 23:57 鍙戣〃璇勮
]]>
note Algorithm book, sql server download, .net context help, activex hotkey/ acceleratorhttp://www.shnenglu.com/aqazero/archive/2007/09/14/32214.htmlbrentbrentFri, 14 Sep 2007 08:13:00 GMThttp://www.shnenglu.com/aqazero/archive/2007/09/14/32214.htmlhttp://www.shnenglu.com/aqazero/comments/32214.htmlhttp://www.shnenglu.com/aqazero/archive/2007/09/14/32214.html#Feedback0http://www.shnenglu.com/aqazero/comments/commentRss/32214.htmlhttp://www.shnenglu.com/aqazero/services/trackbacks/32214.html
a great book about Algorithm  http://www2.toki.or.id/book/AlgDesignManual/INDEX.HTM

sql server developer
http://beta.verycd.com/groups/@g19046/135284.topic
http://beta.verycd.com/groups/@g19046/64613.topic


A great idea about context help:
1)http://www.codeproject.com/csharp/ContextHelpMadeEasy.asp
2)http://netpl.blogspot.com/2007/07/context-help-made-easy-revisited.html


How to deal with hotkey / accelerator keys in activex
http://support.microsoft.com/?scid=kb;EN-US;Q187988

You know how to google ,you know almost every thing.


brent 2007-09-14 16:13 鍙戣〃璇勮
]]>
鏂囨湰鏇挎崲宸ュ叿http://www.shnenglu.com/aqazero/archive/2007/03/15/19870.htmlbrentbrentThu, 15 Mar 2007 03:05:00 GMThttp://www.shnenglu.com/aqazero/archive/2007/03/15/19870.htmlhttp://www.shnenglu.com/aqazero/comments/19870.htmlhttp://www.shnenglu.com/aqazero/archive/2007/03/15/19870.html#Feedback0http://www.shnenglu.com/aqazero/comments/commentRss/19870.htmlhttp://www.shnenglu.com/aqazero/services/trackbacks/19870.html聽聽聽 1,Search
聽聽聽 2,鍦╨ist涓夊畾瑕佹浛鎹㈢殑鏂囦歡鍜岃
聽聽聽 3,Replace
聽聽聽 4,鍙屽嚮list鍙敤閫夊畾緙栬緫鍣ㄦ墦寮銆傚鏋滀嬌鐢╪otepad++鍙洿鎺ュ畾浣嶅埌琛屻?br />

鍥劇墖:
batchStrReplace.JPG

婧愪唬鐮?br />聽聽聽 http://www.shnenglu.com/Files/aqazero/BatchStrReplace.zip


brent 2007-03-15 11:05 鍙戣〃璇勮
]]>
璋冭瘯ISAPIhttp://www.shnenglu.com/aqazero/archive/2006/12/19/16604.htmlbrentbrentTue, 19 Dec 2006 02:24:00 GMThttp://www.shnenglu.com/aqazero/archive/2006/12/19/16604.htmlhttp://www.shnenglu.com/aqazero/comments/16604.htmlhttp://www.shnenglu.com/aqazero/archive/2006/12/19/16604.html#Feedback0http://www.shnenglu.com/aqazero/comments/commentRss/16604.htmlhttp://www.shnenglu.com/aqazero/services/trackbacks/16604.html灝咺USR_[COMPUTERNAME]鍜孖WAM_[COMPUTERNAME]娣誨姞鍒癮mdministrators緇?br />
綆$悊宸ュ叿-鏈湴瀹夊叏絳栫暐-鏈湴絳栫暐-鐢ㄦ埛鏉冨埄鎸囨淳
浠ユ搷浣滅郴緇熸柟寮忔搷浣溌?娣誨姞聽 聽聽聽 INTERACTIVE, IUSR_[COMPUTERNAME], IWAM_[COMPUTERNAME]
浣滀負鏈嶅姟鐧誨綍 聽聽 聽聽聽 娣誨姞聽聽聽聽聽 INTERACTIVE, IUSR_[COMPUTERNAME], IWAM_[COMPUTERNAME]
璋冭瘯紼嬪簭聽聽 聽聽 聽聽 聽聽 娣誨姞聽聽 聽聽 INTERACTIVE, IUSR_[COMPUTERNAME], IWAM_[COMPUTERNAME]

閲嶆柊鍚姩璁$畻鏈猴紝浠ヤ嬌鐢ㄦ埛鏉冮檺璁劇疆鐢熸晥銆?br />
2錛岃緗甒eb鏈嶅姟
鏈嶅姟
IIS Admin Service
Simple Mail Transport Protocol (SMTP)
FTP Publishing Service
World Wide Web Publishing Service
鐨勫惎鍔ㄦ柟寮?>鎵嬪姩銆?br />
璁劇疆 IIS Admin Service聽 鐧誨綍韜喚璁句負鏈湴緋葷粺甯愬彿錛屽茍鍏佽涓庢闈氦浜?br />
鎵撳紑綆$悊宸ュ叿-Internet 鏈嶅姟綆$悊鍣紝璁劇疆瑕佸厑璁歌皟璇曠殑铏氭嫙鐩綍鐨勫睘鎬?
鎵ц璁?>鑴氭湰鍜屽彲鎵ц紼嬪簭
搴旂敤紼嬪簭淇濇姢->搴?IIS榪涚▼)

鍚姩榛樿Web绔欑偣(蹇呴』灝哤eb鏈嶅姟嬋媧伙紝鍚﹀垯璋冭瘯鏃惰櫧鐒惰繍琛屼簡inetinfo.exe錛屼絾涓嶄細榪愯Web鏈嶅姟)

3錛岄厤緗甐C project
Project-setting-Debug
Executable for debug session : C:\WINNT\system32\inetsrv\inetinfo.exe
Program argument : -e w3svc

4錛岃皟璇?br />鎵ц鍛戒護琛?iisreset /stop

淇敼娉ㄥ唽琛ㄤ俊鎭?
REGEDIT4

[HKEY_CLASSES_ROOT\AppID\{61738644-F196-11D0-9953-00C04FD919C1}]
"LocalService"=-
"RunAs"=-

[HKEY_CLASSES_ROOT\AppID\{9F0BD3A0-EC01-11D0-A6A0-00A0C922E752}]
"LocalService"=-
"RunAs"=-

[HKEY_CLASSES_ROOT\AppID\{A9E69610-B80D-11D0-B9B9-00A0C922E750}]
"LocalService"=-
"RunAs"="Interactive User"

灝嗕互涓婃敞鍐岃〃淇℃伅淇濆瓨涓?reg鏂囦歡鍙屽嚮鍗沖彲銆?br />
鍙互寮濮嬪湪VC涓皟璇曚簡錛屾寜F5..

5,鎭㈠鐜
鎸塖hift + F5涓柇璋冭瘯銆?br />
鎭㈠娉ㄥ唽琛ㄤ俊鎭細
REGEDIT4

[HKEY_CLASSES_ROOT\AppID\{61738644-F196-11D0-9953-00C04FD919C1}]
"LocalService"="IISADMIN"
"RunAs"=-

[HKEY_CLASSES_ROOT\AppID\{9F0BD3A0-EC01-11D0-A6A0-00A0C922E752}]
"LocalService"="IISADMIN"
"RunAs"=-

[HKEY_CLASSES_ROOT\AppID\{A9E69610-B80D-11D0-B9B9-00A0C922E750}]
"LocalService"="IISADMIN"
"RunAs"=-

鎵ц鍛戒護琛?iisreset /start

鍙兘闇瑕佺敤鍒扮殑.reg .bat
http://www.shnenglu.com/Files/aqazero/iisIsapiDebug.zip

鏇磋緇嗕俊鎭?
http://xmlrad.com/DelosBin/Delos.dll/ServePage?URL=Manual/Appendix07/index.htm&WEB_ID=101001015


brent 2006-12-19 10:24 鍙戣〃璇勮
]]>
鑷繁瀹炵幇鍥懼艦鏂囨湰緙栬緫鍣?/title><link>http://www.shnenglu.com/aqazero/archive/2006/12/01/15835.html</link><dc:creator>brent</dc:creator><author>brent</author><pubDate>Fri, 01 Dec 2006 02:06:00 GMT</pubDate><guid>http://www.shnenglu.com/aqazero/archive/2006/12/01/15835.html</guid><wfw:comment>http://www.shnenglu.com/aqazero/comments/15835.html</wfw:comment><comments>http://www.shnenglu.com/aqazero/archive/2006/12/01/15835.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.shnenglu.com/aqazero/comments/commentRss/15835.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/aqazero/services/trackbacks/15835.html</trackback:ping><description><![CDATA[鎴戣鐨勫浘褰㈡枃鏈紪杈戝櫒灝辨槸涓嶇敤windows鎺т歡濡俥ditbox,richedit涔嬬被瀹炵幇鏂囨。緙栬緫錛屼笉鏄函鏂囨湰緙栬緫銆?br />瑕佸疄鐜板浘褰㈢粯鍒訛紝璞isio閭f牱錛涜鑳界敾琛ㄦ牸錛岃薄word閭f牱錛涜鑳藉鍑篽tml錛岃薄word閭f牱銆?br />浠ュ悗瑕佸湪姝ゅ熀紜涓婂疄鐜拌〃鍗曠粯鍒跺拰嫻佺▼緇樺埗銆?br /><br />紼嬪簭鐩墠瀹屾垚浜嗕竴灝忛儴鍒嗭細<br /><br /><a class="" title="" href="/Files/aqazero/BrentEditor_demo.zip" target="">http://www.shnenglu.com/Files/aqazero/BrentEditor_demo.zip</a><br /><br />瀹炵幇鐨勫姛鑳芥湁錛?br /><br />1) 緙栬緫鏂囨湰<br />鍙屽嚮鍙紪杈戝璞★紝灝嗚繘鍏ョ紪杈戞ā寮忋傚湪緙栬緫妯″紡涓嬫寜ESC鎴栬呭崟鍑諱笉鍙紪杈戝璞★紝灝嗛鍑虹紪杈戞ā寮忋傛寜浣忛紶鏍囩Щ鍔ㄥ彲浠ラ夋嫨鏂囨湰錛屽疄鐜頒簡涓婁笅宸﹀彸閿殑navigation錛屽疄鐜頒簡鍥炶濺鍒嗘銆?br />娌℃湁瀹炵幇瀵硅嫳璇崟璇嶆暣涓崟璇嶇殑澶勭悊銆傚垎琛屼細鍙戠敓鍦ㄥ崟璇嶇殑浠諱綍閮ㄥ垎銆備富瑕佽冭檻闈㈠鐨勬槸涓枃鐢ㄦ埛銆?br /><br />2) 緇樺埗DIV錛屾寜宸ュ叿鏍忎笂鐨勬柟妗嗭紝鐩存帴鍦ㄧ敾甯冧笂鐐瑰嚮鎷夊姩銆?br /><br />3) 鏀寔鏃犻檺undo/redo錛孋trl+Z Ctrl+Y<br /><br />4) 鏀寔鏂囨湰鐨勫鍒剁矘璐? Ctrl+C Ctrl+V 錛屽壀鍒囨湭瀹炵幇銆?br /><br />5) 鍙互瀵煎嚭鍒癶tml鏂囦歡錛岃彍鍗旻ile - export html<br />瀵煎嚭html鍚庯紝鎺掔増鍙兘鍜岀▼搴忎笉鍚屻?br /><br />6) 瀹炵幇浜嗕繚瀛樿鍙?br />淇濆瓨鐨勬枃浠跺叾瀹炴槸涓帇緙╂枃浠躲?br /><br />7錛夊疄鐜頒簡閮ㄥ垎table鍔熻兘<br />瑕佽皟鏁磋〃鏍間箣鍓嶏紝璇峰厛閫夋嫨瀹氭煇鍗曞厓鏍箋?br />鈥滅粯鍒惰〃鏍尖濆姛鑳界洰鍓嶈繕鏈敮鎸乽ndo/redo<br /><br />8) 鐩墠鐨勭敾甯冨竷灞涓?flow錛屽璞$殑浣嶇疆鐢眆low綆楁硶鍐沖畾錛屾墍浠ュ彧鑳借皟鏁村ぇ灝忥紝涓嶈兘璋冩暣浣嶇疆銆?br /><br />涓嬩竴姝ュ皢瀹炵幇鐨勬槸錛?br /><br />1) 緇樺埗table<br /><br />2) 鏇存敼瀛椾綋<br /><br />3) 鏇存敼DIV銆乧ell杈規灞炴э紝璁劇疆濉厖棰滆壊<br /><br />4) 瀹炵幇absolute瀹氫綅<br /><br />5) 瀹炵幇鎶樼嚎緇樺埗錛屼互鍙婃櫤鑳借繛綰?璞iso涓偅鏍瘋繛鎺ヤ袱涓璞★紝鑷繁鎷愬集鐨勬姌綰?<br /><br />...<br /><br />鐒跺悗灝辨槸緇樺埗workflow錛岃繛鎺ユ暟鎹簱絳夌瓑浜嗐?br /><br />...<br /><img src ="http://www.shnenglu.com/aqazero/aggbug/15835.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/aqazero/" target="_blank">brent</a> 2006-12-01 10:06 <a href="http://www.shnenglu.com/aqazero/archive/2006/12/01/15835.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Excel addin澶勭悊瀛︾敓鎴愮嘩http://www.shnenglu.com/aqazero/archive/2006/11/28/15731.htmlbrentbrentTue, 28 Nov 2006 06:40:00 GMThttp://www.shnenglu.com/aqazero/archive/2006/11/28/15731.htmlhttp://www.shnenglu.com/aqazero/comments/15731.htmlhttp://www.shnenglu.com/aqazero/archive/2006/11/28/15731.html#Feedback7http://www.shnenglu.com/aqazero/comments/commentRss/15731.htmlhttp://www.shnenglu.com/aqazero/services/trackbacks/15731.html姣忔閮借閲嶅涓浜沞xcel鎻掑叆錛屽鍒訛紝綺樿創鐨勬搷浣滐紝浜庢槸鑷綔鑱槑鍦拌鎴戝府濂瑰啓紼嬪簭銆?br>涓轟簡榪欎箞鐐瑰皬浜嬶紝璁╂垜鐢╲c++鍐欑▼搴?鎴戝VBA涓嶇啛鍟?..)錛屽疄鍦ㄦ槸澶ф潗灝忕敤鍟娿?br>鑰屼笖紼嬪簭鍐欏ソ鍚庤繕闂澶氬錛宐ug澶氬錛屽棷錛屾偍灝卞噾鍚堢潃鐢ㄥ惂銆?br>鏈夐棶棰樺氨鍦ㄨ繖閲岀暀涓█錛岀▼搴忓凡緇忔湁鏇存柊鍔熻兘浜嗭紝鎴戜慨鏀硅搗鏉ヤ綘鏇存柊璧鋒潵閮戒細寰堟柟渚跨殑(浣嗘効濡傛浜?銆?br>
for user:
瀹夎紼嬪簭鍦?http://www.shnenglu.com/Files/aqazero/brentExcelAddinSetup_fm.zip
excel鏂囦歡鏍煎紡鍙傝?http://www.shnenglu.com/Files/aqazero/example_brentAddin.zip

寰堢儌鐨勬簮鐮侊細http://www.shnenglu.com/Files/aqazero/BrentAddin.rar


brent 2006-11-28 14:40 鍙戣〃璇勮
]]>
graphical text editor (浜?(鍐呮湁甯呭浘)http://www.shnenglu.com/aqazero/archive/2006/11/22/15544.htmlbrentbrentWed, 22 Nov 2006 08:42:00 GMThttp://www.shnenglu.com/aqazero/archive/2006/11/22/15544.htmlhttp://www.shnenglu.com/aqazero/comments/15544.htmlhttp://www.shnenglu.com/aqazero/archive/2006/11/22/15544.html#Feedback0http://www.shnenglu.com/aqazero/comments/commentRss/15544.htmlhttp://www.shnenglu.com/aqazero/services/trackbacks/15544.htmlgt1.jpg

gt1.jpg

gt1.jpg

gt1.jpg

gt1.jpg

gt1.jpg

gt1.jpg

gt1.jpg

gt1.jpg

gt1.jpg

gt1.jpg

gt1.jpg

gt1.jpg



brent 2006-11-22 16:42 鍙戣〃璇勮
]]>
graphical text editor錛?/title><link>http://www.shnenglu.com/aqazero/archive/2006/10/08/13458.html</link><dc:creator>brent</dc:creator><author>brent</author><pubDate>Sun, 08 Oct 2006 08:13:00 GMT</pubDate><guid>http://www.shnenglu.com/aqazero/archive/2006/10/08/13458.html</guid><wfw:comment>http://www.shnenglu.com/aqazero/comments/13458.html</wfw:comment><comments>http://www.shnenglu.com/aqazero/archive/2006/10/08/13458.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/aqazero/comments/commentRss/13458.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/aqazero/services/trackbacks/13458.html</trackback:ping><description><![CDATA[ <p align="left">鍋氫竴涓枃鏈紪杈戝櫒浼間箮宸茬粡涓嶆槸寰堥毦浜嗐?br />緗戜笂鏈夊緢澶氭簮浠g爜鍙互涓嬭澆錛屼篃鏈夊叿浣撶殑涓姝ユ鐨勬暀紼嬨?br />濡傦細<a >http://www.catch22.net/tuts/editor01.asp</a><br /><br />浣嗗仛涓涓猤raphical text editor鍛紵璞ORD閭f牱鍗沖彲浠ョ敾琛ㄦ牸錛屼篃鍙互緙栬緫甯﹀瓧浣撶殑鏂囨湰銆?br /><img height="600" alt="drawer.jpg" src="http://www.shnenglu.com/images/cppblog_com/aqazero/drawer.jpg" width="800" border="0" /><br />鍥綢</p> <p align="left">涓寮濮嬫垜寮勪簡榪欎釜(鍥綢)鐢ㄦ潵鐢昏〃鏍?table鏄竴涓璞★紝鍖呭惈cell瀵硅薄錛屼互鍙妑owInfo鍜宑olInfo銆俢ell鍖呭惈鐨剆tring錛宑har騫朵笉浣滀負鍗曠嫭鐨勪竴涓璞°?br /><br /><br /><img height="600" alt="brenteditor1.jpg" src="http://www.shnenglu.com/images/cppblog_com/aqazero/brenteditor1.jpg" width="800" border="0" /><br />鍥綢I<br /><img height="600" alt="brenteditor2.jpg" src="http://www.shnenglu.com/images/cppblog_com/aqazero/brenteditor2.jpg" width="800" border="0" /><br />鍥綢II<br /><br />鍚庢潵鏀瑰啓錛屾妸姣忎釜char褰撴垚涓涓璞★紝浣哻har瀵硅薄鍜屽叾瀹冨璞$殑compose鍗村張鎴愰棶棰樸傘?br />Range鐨勮〃紺轟篃鎴愰棶棰樸?br /><br />浼間箮table絳夊璞″彧鑳界粷瀵瑰畾浣嶏紝鏃犳硶瀹炵幇璞ord涓〃鏍肩殑瀵歸綈鏂瑰紡鍜屾枃瀛楀洿緇曟晥鏋溿?/p> <p align="left">鍐欏緱濂界瘡錛屾湁璋佺煡閬撴湁寮婧愮殑鐢–++鍐欑殑graphical text editor錛屾垨鑰呰嚜宸辨湁鍐欑殑錛屽笇鏈涜兘浜ゆ祦涓涓嬪晩銆?/p> <img src ="http://www.shnenglu.com/aqazero/aggbug/13458.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/aqazero/" target="_blank">brent</a> 2006-10-08 16:13 <a href="http://www.shnenglu.com/aqazero/archive/2006/10/08/13458.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>C++ 榪愮畻絎︿紭鍏堢駭鍒楄〃http://www.shnenglu.com/aqazero/archive/2006/06/08/8284.htmlbrentbrentThu, 08 Jun 2006 01:33:00 GMThttp://www.shnenglu.com/aqazero/archive/2006/06/08/8284.htmlhttp://www.shnenglu.com/aqazero/comments/8284.htmlhttp://www.shnenglu.com/aqazero/archive/2006/06/08/8284.html#Feedback18http://www.shnenglu.com/aqazero/comments/commentRss/8284.htmlhttp://www.shnenglu.com/aqazero/services/trackbacks/8284.htmlhttp://www.cppreference.com/operator_precedence.html
Precedence Operator Description Example Associativity
1 ()
[]
->
.
::
++
--
Grouping operator
Array access
Member access from a pointer
Member access from an object
Scoping operator
Post-increment
Post-decrement
(a + b) / 4;
array[4] = 2;
ptr->age = 34;
obj.age = 34;
Class::age = 2;
for( i = 0; i < 10; i++ ) ...
for( i = 10; i > 0; i-- ) ...
left to right
2 !
~
++
--
-
+
*
&
(type)
sizeof
Logical negation
Bitwise complement
Pre-increment
Pre-decrement
Unary minus
Unary plus
Dereference
Address of
Cast to a given type
Return size in bytes
if( !done ) ...
flags = ~flags;
for( i = 0; i < 10; ++i ) ...
for( i = 10; i > 0; --i ) ...
int i = -1;
int i = +1;
data = *ptr;
address = &obj;
int i = (int) floatNum;
int size = sizeof(floatNum);
right to left
3 ->*
.*
Member pointer selector
Member pointer selector
ptr->*var = 24;
obj.*var = 24;
left to right
4 *
/
%
Multiplication
Division
Modulus
int i = 2 * 4;
float f = 10 / 3;
int rem = 4 % 3;
left to right
5 +
-
Addition
Subtraction
int i = 2 + 3;
int i = 5 - 1;
left to right
6 <<
>>
Bitwise shift left
Bitwise shift right
int flags = 33 << 1;
int flags = 33 >> 1;
left to right
7 <
<=
>
>=
Comparison less-than
Comparison less-than-or-equal-to
Comparison greater-than
Comparison geater-than-or-equal-to
if( i < 42 ) ...
if( i <= 42 ) ...
if( i > 42 ) ...
if( i >= 42 ) ...
left to right
8 ==
!=
Comparison equal-to
Comparison not-equal-to
if( i == 42 ) ...
if( i != 42 ) ...
left to right
9 & Bitwise AND flags = flags & 42; left to right
10 ^ Bitwise exclusive OR flags = flags ^ 42; left to right
11 | Bitwise inclusive (normal) OR flags = flags | 42; left to right
12 && Logical AND if( conditionA && conditionB ) ... left to right
13 || Logical OR if( conditionA || conditionB ) ... left to right
14 ? : Ternary conditional (if-then-else) int i = (a > b) ? a : b; right to left
15 =
+=
-=
*=
/=
%=
&=
^=
|=
<<=
>>=
Assignment operator
Increment and assign
Decrement and assign
Multiply and assign
Divide and assign
Modulo and assign
Bitwise AND and assign
Bitwise exclusive OR and assign
Bitwise inclusive (normal) OR and assign
Bitwise shift left and assign
Bitwise shift right and assign
int a = b;
a += 3;
b -= 4;
a *= 5;
a /= 2;
a %= 3;
flags &= new_flags;
flags ^= new_flags;
flags |= new_flags;
flags <<= 2;
flags >>= 2;
right to left
16 , Sequential evaluation operator for( i = 0, j = 0; i < 10; i++, j++ ) ... left to right


brent 2006-06-08 09:33 鍙戣〃璇勮
]]>
鍏充簬鍐呭瓨娉勬紡璁板綍http://www.shnenglu.com/aqazero/archive/2006/06/05/8183.htmlbrentbrentMon, 05 Jun 2006 09:27:00 GMThttp://www.shnenglu.com/aqazero/archive/2006/06/05/8183.htmlhttp://www.shnenglu.com/aqazero/comments/8183.htmlhttp://www.shnenglu.com/aqazero/archive/2006/06/05/8183.html#Feedback0http://www.shnenglu.com/aqazero/comments/commentRss/8183.htmlhttp://www.shnenglu.com/aqazero/services/trackbacks/8183.html鏂囩珷鍦板潃:http://www-128.ibm.com/developerworks/cn/linux/l-mleak2/index.html#main
鏈湴鏂囦歡鍦板潃:http://www.shnenglu.com/Files/aqazero/dbg_new.zip



brent 2006-06-05 17:27 鍙戣〃璇勮
]]>
榪樻槸鍏充簬寮傚父http://www.shnenglu.com/aqazero/archive/2006/05/31/14172.htmlbrentbrentWed, 31 May 2006 03:40:00 GMThttp://www.shnenglu.com/aqazero/archive/2006/05/31/14172.htmlhttp://www.shnenglu.com/aqazero/comments/14172.htmlhttp://www.shnenglu.com/aqazero/archive/2006/05/31/14172.html#Feedback0http://www.shnenglu.com/aqazero/comments/commentRss/14172.htmlhttp://www.shnenglu.com/aqazero/services/trackbacks/14172.htmltry{
聽聽聽...
聽聽聽throw "teststring";//1
}
catch(string & rs){//2
聽聽聽...
}
鎯寵鐢?/2澶勭殑璇彞鏉ユ崟鑾?/1澶勭殑寮傚父,褰撶劧鏄笉瀵圭殑.
姝g‘鐨勫簲璇ユ槸:
catch(char聽* ps){ 鎴?catch(const char聽* ps){

鍏跺疄鍥犱負"teststring"鏄繚瀛樺湪浠g爜孌典腑鐨?鎵浠ュ簲璇ユ姏鍑篶onst鎸囬拡
try{
聽聽聽...
聽聽聽throw static_cast<const char *>("teststring");
}
catch(char聽* ps){//閿?鏀逛負=> catch(const char聽* ps){
聽聽聽...
}
澶╀笅澶鉤,浣嗗鏋滈捇鐗涜灝?
try{
聽聽聽...
聽聽聽throw static_cast<const char *>("teststring");//3
}
catch(const char聽* const& rps){//4
聽聽聽...
}
鍙互鍚?緙栬瘧姝e父,浣?/4鏃犳硶鎹曡幏//3鐨勫紓甯?
浣嗕負浠涔?br />try{
聽聽聽...
聽聽聽throw static_cast<const string>string("teststring");//5
}
catch(const string & rs){//6
聽聽聽...
}
//6澶勫氨鍙互鎹曡幏鍒?/5澶勭殑寮傚父鍛?br />鍥犱負//5澶勬姏鍑虹殑寮傚父綾誨瀷鏍規湰灝變笉鏄痗onst鐨?鍙槸string鐨勭被鍨?br />鑰?/3澶勭殑寮傚父鐨勭被鍨嬬殑紜槸cosnt char *
鍢垮樋...

綆鍗曠殑璇村紓甯哥殑澶勭悊闇瑕佸紩鍏ヤ竴涓叏灞鐨勫璞?
throw x;鐨勬椂鍊欑敤x鏉ョ粰榪欎釜鍏ㄥ眬瀵硅薄y璧嬪?褰撴崟鑾風殑鏃跺欏湪catch( type z)澶?鐢▂緇檢璧嬪?
濡傛灉x鐨勭被鍨嬩笉鏄寚閽?姣斿string),涓嶇瀹冩湁娌℃湁甯擱噺鎬?y鐨勭被鍨嬮兘鏄痵tring,鑰寊鐨勭被鍨嬩笉綆℃槸string 榪樻槸const string閮借兘鎹曡幏x.

浣嗘槸,褰搙鐨勭被鍨嬫槸鎸囬拡鐨勬椂鍊?y鐨勭被鍨嬬殑甯擱噺鎬у拰x鏄竴鑷寸殑,z鐨勭被鍨嬩篃鍙湁鍜寈涓鑷存墠鑳芥崟鑾穢鐨勫紓甯?

浣?/4澶勫氨鏄笉鑳芥崟鑾?/3鐨勫紓甯?
涔熻鏄疺C++鐨勯棶棰?
涓嶇煡閬撳埆鐨勭紪璇戝櫒濡備綍.
榪樺ソ鐢ㄥ紩鐢ㄦ潵鎹曡幏鎸囬拡...鏅氫漢搴旇閮戒笉浼氳繖涔堝仛-_-
浣嗗敖閲忕敤const綾誨瀷鏉atch,搴旇鏄釜濂戒範鎯?

brent 2006-05-31 11:40 鍙戣〃璇勮
]]>
一本色道久久综合亚洲精品| 久久国产色AV免费观看| 久久国产精品久久| 久久国产综合精品五月天| 久久久久久A亚洲欧洲AV冫 | 99久久香蕉国产线看观香| 久久经典免费视频| 国产精品99久久精品| 老司机午夜网站国内精品久久久久久久久| 亚洲v国产v天堂a无码久久| 国产偷久久久精品专区| 亚洲国产精品人久久| 2021国产精品久久精品| 久久精品国产色蜜蜜麻豆| 精品久久久无码人妻中文字幕豆芽 | 狠狠色婷婷久久综合频道日韩 | 99久久精品九九亚洲精品| 久久精品国产日本波多野结衣| 国产成年无码久久久久毛片| 中文成人久久久久影院免费观看| 久久99精品国产99久久6男男| 伊人久久大香线蕉综合Av| 亚洲国产成人久久综合区| 99久久成人18免费网站| 丰满少妇人妻久久久久久| 亚洲精品无码久久久久去q | 国产叼嘿久久精品久久| 久久天天躁狠狠躁夜夜96流白浆| 久久久久久久国产免费看| 91精品婷婷国产综合久久| 欧美精品一区二区精品久久 | 久久久国产精华液| 亚洲日本va午夜中文字幕久久| 久久国产午夜精品一区二区三区| 97久久精品无码一区二区天美 | 久久久久香蕉视频| 久久久久黑人强伦姧人妻| 久久久久亚洲av成人无码电影| 久久久精品国产亚洲成人满18免费网站| 久久精品男人影院| 国产精品免费看久久久香蕉|