• <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++博客 首頁 新隨筆 聯系 聚合 管理
              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;????????????????????????????????//?當前實例
            ??8?TCHAR?szTitle[MAX_LOADSTRING];????????????????????//?標題欄文本
            ??9?TCHAR?szWindowClass[MAX_LOADSTRING];????????????//?主窗口類名
            ?10?
            ?11?//?此代碼模塊中包含的函數的前向聲明:
            ?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?????//?執行應用程序初始化:
            158?????if?(!InitInstance?(hInstance,?nCmdShow))?
            159?????{
            160?????????return?FALSE;
            161?????}
            162?
            163?????hAccelTable?=?LoadAccelerators(hInstance,?(LPCTSTR)IDC_MULTIWINDOW);
            164?
            165?????//?主消息循環:
            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?//??函數:?MyRegisterClass()
            182?//
            183?//??目的:?注冊窗口類。
            184?//
            185?//??注釋:?
            186?//
            187?//????僅當希望在已添加到?Windows?95?的
            188?//????“RegisterClassEx”函數之前此代碼與?Win32?系統兼容時,
            189?//????才需要此函數及其用法。調用此函數
            190?//????十分重要,這樣應用程序就可以獲得關聯的
            191?//???“格式正確的”小圖標。
            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?//???函數:?InitInstance(HANDLE,?int)
            216?//
            217?//???目的:?保存實例句柄并創建主窗口
            218?//
            219?//???注釋:?
            220?//
            221?//????????在此函數中,我們在全局變量中保存實例句柄并
            222?//????????創建和顯示主程序窗口。
            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久久| 青青草原精品99久久精品66| 久久精品国产99久久久香蕉| 久久热这里只有精品在线观看| 久久精品一区二区国产| 怡红院日本一道日本久久 | 77777亚洲午夜久久多喷| 亚洲国产另类久久久精品小说| 激情伊人五月天久久综合| 亚洲?V乱码久久精品蜜桃| 久久精品aⅴ无码中文字字幕不卡| 久久精品国产亚洲Aⅴ蜜臀色欲| 色妞色综合久久夜夜| 伊人久久大香线蕉精品不卡| 久久e热在这里只有国产中文精品99| 久久久久亚洲AV无码专区首JN| 韩国三级中文字幕hd久久精品| 久久久噜噜噜www成人网| 国产69精品久久久久久人妻精品 | 伊人久久大香线蕉综合网站| 97久久超碰成人精品网站| 久久精品国产日本波多野结衣| 久久久久亚洲AV成人网人人网站| 国产精品久久久久jk制服| 人妻无码中文久久久久专区| 亚洲国产精品18久久久久久| 久久婷婷色香五月综合激情| 日产久久强奸免费的看| 久久人人爽人人爽人人片AV麻豆 | 久久精品国产亚洲AV电影| 亚洲精品无码久久久久去q| 久久国产免费直播| 伊人久久大香线蕉av不卡| 亚洲成色www久久网站夜月| 亚洲国产美女精品久久久久∴ |