• <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>

            VC++ C++ C# Algorithm

            C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
              21 Posts :: 3 Stories :: 31 Comments :: 0 Trackbacks

            一個程序二個窗口

            ??1?#include?"stdafx.h"
            ??2?#include?<map>
            ??3?#include?"MultiWindow.h"
            ??4?#define?MAX_LOADSTRING?100
            ??5?using?namespace?std;
            ??6?//?全局變量:
            ??7?HINSTANCE?hInst;????????????????????????????????//?當(dāng)前實例
            ??8?TCHAR?szTitle[MAX_LOADSTRING];????????????????????//?標(biāo)題欄文本
            ??9?TCHAR?szWindowClass[MAX_LOADSTRING];????????????//?主窗口類名
            ?10?
            ?11?//?此代碼模塊中包含的函數(shù)的前向聲明:
            ?12?ATOM????????????????MyRegisterClass(HINSTANCE?hInstance);
            ?13?BOOL????????????????InitInstance(HINSTANCE,?int);
            ?14?LRESULT?CALLBACK????WndProc(HWND,?UINT,?WPARAM,?LPARAM);
            ?15?LRESULT?CALLBACK????About(HWND,?UINT,?WPARAM,?LPARAM);
            ?16?using?namespace?std;
            ?17?
            ?18?class?CMyWnd;
            ?19?typedef?map<HWND,CMyWnd*>?MAPHWND2WND;
            ?20?MAPHWND2WND??mapHWND2Wnd;
            ?21?
            ?22?CMyWnd*?tmpMyWnd?=?NULL;
            ?23?
            ?24?class?CMyWnd
            ?25?{
            ?26?public:
            ?27?????static?LRESULT?CALLBACK?WndProc(HWND?hWnd,UINT?nMessage,WPARAM?wParam,LPARAM?lParam);
            ?28?
            ?29?????LRESULT?WindowProc(UINT?nMessage,WPARAM?wParam,LPARAM?lParam);
            ?30?
            ?31?
            ?32?????CMyWnd()
            ?33?????{
            ?34?????????m_hWnd?=?NULL;
            ?35?????}
            ?36?????bool?Create()
            ?37?????{
            ?38?????????tmpMyWnd??=?this;
            ?39?
            ?40?????????m_hWnd??=?CreateWindow(szWindowClass,?szTitle,?WS_OVERLAPPEDWINDOW,
            ?41?????????????0,?0,?100,100,?NULL,?NULL,?hInst,?NULL);
            ?42?
            ?43?????????if?(!m_hWnd)
            ?44?????????????return?false;
            ?45?
            ?46?
            ?47?????????return?true;
            ?48?????}
            ?49?
            ?50?????BOOL?ShowWindow(int?nCmdShow)
            ?51?????{
            ?52?????????return?::ShowWindow(m_hWnd,nCmdShow);
            ?53?????}
            ?54?
            ?55?????BOOL?UpdataWindow()
            ?56?????{
            ?57?????????return?::UpdateWindow(m_hWnd);
            ?58?????}
            ?59?
            ?60?????virtual?void?OnPaint()
            ?61?????{
            ?62?????????PAINTSTRUCT?ps;
            ?63?????????HDC?hdc?=?BeginPaint(m_hWnd,?&ps);
            ?64?????????::TextOut(hdc,0,0,"123456",6);
            ?65?????????EndPaint(m_hWnd,?&ps);
            ?66?
            ?67?????}
            ?68?
            ?69?????HWND?m_hWnd;
            ?70?};
            ?71?
            ?72?class?CMyWnd2?:?public?CMyWnd
            ?73?{
            ?74?public:
            ?75?????virtual?void?OnPaint()
            ?76?????{
            ?77?????????PAINTSTRUCT?ps;
            ?78?????????HDC?hdc?=?BeginPaint(m_hWnd,?&ps);
            ?79?????????::TextOut(hdc,0,0,"6789",4);
            ?80?????????EndPaint(m_hWnd,?&ps);
            ?81?????}
            ?82?
            ?83?????string?m_str;
            ?84?};
            ?85?
            ?86?class?CMyWnd3?:?public?CMyWnd
            ?87?{
            ?88?public:
            ?89?????virtual?void?OnPaint()
            ?90?????{
            ?91?????????PAINTSTRUCT?ps;
            ?92?????????HDC?hdc?=?BeginPaint(m_hWnd,?&ps);
            ?93?????????::TextOut(hdc,0,0,"000000",6);
            ?94?????????EndPaint(m_hWnd,?&ps);
            ?95?????}
            ?96?
            ?97?????string?m_str;
            ?98?};
            ?99?
            100?CMyWnd*?findCMyWnd(HWND?hWnd)
            101?{
            102?????MAPHWND2WND::iterator?it?=?mapHWND2Wnd.find(hWnd);
            103?????if?(it?!=?mapHWND2Wnd.end())
            104?????{
            105?????????return?it->second;
            106?????}
            107?????else
            108?????{
            109?????????mapHWND2Wnd.insert(make_pair(hWnd,tmpMyWnd));
            110?
            111?????????tmpMyWnd->m_hWnd?=?hWnd;
            112?????????return?tmpMyWnd;
            113?????????//DebugBreak();
            114?????}
            115?????return?NULL;
            116?}
            117?
            118?LRESULT?CALLBACK?CMyWnd::WndProc(HWND?hWnd,UINT?nMessage,WPARAM?wParam,LPARAM?lParam)
            119?{
            120?????CMyWnd*?pWnd?=?findCMyWnd(hWnd);
            121?????if?(pWnd?!=?NULL)
            122?????{
            123?????????return?pWnd->WindowProc(?nMessage,?wParam,?lParam);
            124?????}
            125?????else
            126?????{
            127?????????DebugBreak();
            128?????}
            129?????return?0;
            130?}
            131?
            132?LRESULT?CMyWnd::WindowProc(UINT?nMessage,WPARAM?wParam,LPARAM?lParam)
            133?{
            134?????if?(nMessage?==?WM_PAINT)
            135?????{
            136?????????OnPaint();
            137?????????return?0;
            138?????}
            139?????return?::DefWindowProc(m_hWnd,?nMessage,?wParam,?lParam);;
            140?}
            141?
            142?
            143?int?APIENTRY?_tWinMain(HINSTANCE?hInstance,
            144??????????????????????HINSTANCE?hPrevInstance,
            145??????????????????????LPTSTR????lpCmdLine,
            146??????????????????????int???????nCmdShow)
            147?{
            148??????//?TODO:?在此放置代碼。
            149?????MSG?msg;
            150?????HACCEL?hAccelTable;
            151?
            152?????//?初始化全局字符串
            153?????LoadString(hInstance,?IDS_APP_TITLE,?szTitle,?MAX_LOADSTRING);
            154?????LoadString(hInstance,?IDC_MULTIWINDOW,?szWindowClass,?MAX_LOADSTRING);
            155?????MyRegisterClass(hInstance);
            156?
            157?????//?執(zhí)行應(yīng)用程序初始化:
            158?????if?(!InitInstance?(hInstance,?nCmdShow))?
            159?????{
            160?????????return?FALSE;
            161?????}
            162?
            163?????hAccelTable?=?LoadAccelerators(hInstance,?(LPCTSTR)IDC_MULTIWINDOW);
            164?
            165?????//?主消息循環(huán):
            166?????while?(GetMessage(&msg,?NULL,?0,?0))?
            167?????{
            168?????????if?(!TranslateAccelerator(msg.hwnd,?hAccelTable,?&msg))?
            169?????????{
            170?????????????TranslateMessage(&msg);
            171?????????????DispatchMessage(&msg);
            172?????????}
            173?????}
            174?
            175?????return?(int)?msg.wParam;
            176?}
            177?
            178?
            179?
            180?//
            181?//??函數(shù):?MyRegisterClass()
            182?//
            183?//??目的:?注冊窗口類。
            184?//
            185?//??注釋:?
            186?//
            187?//????僅當(dāng)希望在已添加到?Windows?95?的
            188?//????“RegisterClassEx”函數(shù)之前此代碼與?Win32?系統(tǒng)兼容時,
            189?//????才需要此函數(shù)及其用法。調(diào)用此函數(shù)
            190?//????十分重要,這樣應(yīng)用程序就可以獲得關(guān)聯(lián)的
            191?//???“格式正確的”小圖標(biāo)。
            192?//
            193?ATOM?MyRegisterClass(HINSTANCE?hInstance)
            194?{
            195?????WNDCLASSEX?wcex;
            196?
            197?????wcex.cbSize?=?sizeof(WNDCLASSEX);?
            198?
            199?????wcex.style????????????=?CS_HREDRAW?|?CS_VREDRAW;
            200?????wcex.lpfnWndProc????=?CMyWnd::WndProc;
            201?????wcex.cbClsExtra????????=?0;
            202?????wcex.cbWndExtra????????=?0;
            203?????wcex.hInstance????????=?hInstance;
            204?????wcex.hIcon????????????=?LoadIcon(hInstance,?(LPCTSTR)IDI_MULTIWINDOW);
            205?????wcex.hCursor????????=?LoadCursor(NULL,?IDC_ARROW);
            206?????wcex.hbrBackground????=?(HBRUSH)(COLOR_WINDOW+1);
            207?????wcex.lpszMenuName????=?(LPCTSTR)IDC_MULTIWINDOW;
            208?????wcex.lpszClassName????=?szWindowClass;
            209?????wcex.hIconSm????????=?LoadIcon(wcex.hInstance,?(LPCTSTR)IDI_SMALL);
            210?
            211?????return?RegisterClassEx(&wcex);
            212?}
            213?
            214?//
            215?//???函數(shù):?InitInstance(HANDLE,?int)
            216?//
            217?//???目的:?保存實例句柄并創(chuàng)建主窗口
            218?//
            219?//???注釋:?
            220?//
            221?//????????在此函數(shù)中,我們在全局變量中保存實例句柄并
            222?//????????創(chuàng)建和顯示主程序窗口。
            223?//
            224?BOOL?InitInstance(HINSTANCE?hInstance,?int?nCmdShow)
            225?{
            226???
            227?
            228????hInst?=?hInstance;?//?將實例句柄存儲在全局變量中
            229?
            230???
            231????CMyWnd*?pWnd?=?new?CMyWnd3();
            232????if(!pWnd->Create())
            233????????return?false;
            234????pWnd->ShowWindow(nCmdShow);
            235????pWnd->UpdataWindow();
            236?
            237????pWnd?=?new?CMyWnd2();
            238?
            239????if?(!pWnd->Create())
            240????????return?FALSE;
            241????pWnd->ShowWindow(nCmdShow);
            242????pWnd->UpdataWindow();
            243?
            244????return?TRUE;
            245?}
            posted on 2006-12-15 20:56 大熊貓 閱讀(271) 評論(0)  編輯 收藏 引用
            久久99精品久久只有精品| 精品国产乱码久久久久久浪潮| 久久亚洲天堂| 伊人色综合久久天天人守人婷| 久久久久久精品免费看SSS| 久久精品国产99久久久古代| 精品熟女少妇av免费久久| 91精品国产91久久久久久青草| 亚洲国产成人久久笫一页| 久久久免费精品re6| 久久久久九国产精品| a级成人毛片久久| 伊人久久大香线蕉av一区| 精品免费tv久久久久久久| 热久久视久久精品18| 久久久久久综合一区中文字幕 | 伊人久久综合热线大杳蕉下载| 久久久WWW成人免费毛片| 国内精品久久久人妻中文字幕| 精品人妻伦一二三区久久| 7777久久亚洲中文字幕| 久久久久久精品无码人妻| 久久婷婷色综合一区二区| 久久亚洲高清观看| 国内精品久久久久久99蜜桃| 久久久久久精品无码人妻| 无码任你躁久久久久久老妇App| 亚洲精品高清国产一久久| 九九99精品久久久久久| 久久99精品国产自在现线小黄鸭 | 国产精品欧美久久久天天影视| 亚洲国产综合久久天堂| 欧美日韩成人精品久久久免费看| 精品国产91久久久久久久| 国产精品9999久久久久| 精品人妻久久久久久888| 热re99久久6国产精品免费| 日产精品久久久久久久| 久久九九兔免费精品6| 亚洲精品无码久久一线| 无码人妻久久一区二区三区|