• <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久久久国产精品免费无卡顿| 久久福利青草精品资源站免费 | 久久91精品综合国产首页| 久久久久久久尹人综合网亚洲| 人人狠狠综合久久亚洲婷婷| 久久精品视频免费| 久久久久国产精品三级网| 国产婷婷成人久久Av免费高清| 97久久久久人妻精品专区 | 久久久精品国产sm调教网站| 久久久精品无码专区不卡| 人人狠狠综合久久亚洲| 无码超乳爆乳中文字幕久久| 久久久久国产亚洲AV麻豆| 久久午夜无码鲁丝片秋霞| 国产精品美女久久久久| 久久婷婷成人综合色综合| 久久综合偷偷噜噜噜色| 97久久精品人人澡人人爽| 99久久无色码中文字幕| 久久综合色区| 久久人人爽人人爽人人片AV东京热| 久久综合九色综合网站| 精品无码人妻久久久久久| 久久棈精品久久久久久噜噜| 2021国内久久精品| 久久久精品久久久久特色影视| 久久免费高清视频| 无码人妻久久一区二区三区免费 | 97精品国产97久久久久久免费 | 中文字幕无码久久精品青草| 久久久久九国产精品| 成人综合伊人五月婷久久| 亚洲人成精品久久久久| 97精品依人久久久大香线蕉97| 精品久久久久久国产| 99久久久精品免费观看国产 | 日本久久久精品中文字幕| 久久精品亚洲日本波多野结衣 | 人妻精品久久无码专区精东影业| 一本久道久久综合狠狠躁AV|