亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? menubar.cpp

?? Programming.Microsoft.Windows.CE.Dot.NET.3rd.Edition.pdf the chapter 5 example codes.
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
//======================================================================
// MenuBar - Demonstrates a Pocket PC menu bar
//
// Written for the book Programming Windows CE
// Copyright (C) 2003 Douglas Boling
//
//======================================================================
#include <windows.h>                 // For all that Windows stuff
#include <commctrl.h>                // Command bar includes
#include <aygshell.h>                // Pocket PC includes
#include "MenuBar.h"                 // Program-specific stuff
#include "ExPPCIncs.h"               // Adds back PPC SDK stuff
//----------------------------------------------------------------------
// Global data
//
// Get the new menu extension giud when compiling for Pocket PC
#if defined(WIN32_PLATFORM_PSPC)
// This guid must match the one in the NewMenuX example
static const GUID CLSID_NewMenuX = 
{0x130f6e46,0xc3f9,0x4fa8,{0xb8,0xbc,0x75,0x72,0xb,0xc7,0x32,0x31}};
#endif WIN32_PLATFORM_PSPC

const TCHAR szAppName[] = TEXT("MenuBar");
HINSTANCE hInst;                     // Program instance handle

HWND hwndMenuBar = NULL;             // Handle of menu bar control
SHACTIVATEINFO sai;                  // Used to adjust window for SIP

// Message dispatch table for MainWindowProc
const struct decodeUINT MainMessages[] = {
    WM_CREATE, DoCreateMain,
    WM_SIZE, DoSizeMain,
    WM_COMMAND, DoCommandMain,
    WM_NOTIFY, DoNotifyMain,
    WM_SETTINGCHANGE, DoSettingChangeMain,
    WM_ACTIVATE, DoActivateMain,
    WM_DESTROY, DoDestroyMain,
};
// Command Message dispatch for MainWindowProc
const struct decodeCMD MainCommandItems[] = {
    IDM_EXIT, DoMainCommandExit,
    IDM_DOSHAREDNEW, DoMainCommandSharedNew,
    IDM_DOSIMPLENEW, DoMainCommandSimpleNew,
    IDM_ABOUT, DoMainCommandAbout,
};
//======================================================================
// Program entry point
//
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    LPWSTR lpCmdLine, int nCmdShow) {
    MSG msg;
    int rc = 0;
    HWND hwndMain;
    HACCEL hAccel;

    // Initialize application.
    hwndMain = InitInstance (hInstance, lpCmdLine, nCmdShow);
    if (hwndMain == 0) return 0x10;

    hAccel = LoadAccelerators(hInstance, MAKEINTRESOURCE (ID_ACCEL));

    // Application message loop
    while (GetMessage (&msg, NULL, 0, 0)) {

        // Translate accelerator keys.
        if (!TranslateAccelerator(hwndMain, hAccel, &msg)) {
            TranslateMessage (&msg);
            DispatchMessage (&msg);
        }
    }
    // Instance cleanup
    return TermInstance (hInstance, msg.wParam);
 }
//------------------------------------------------------------------
// InitInstance - Instance initialization
//
HWND InitInstance (HINSTANCE hInstance, LPWSTR lpCmdLine, int nCmdShow) {
    HWND hWnd;
    WNDCLASS wc;

    // Allow only one instance of the application.
    hWnd = FindWindow (szAppName, NULL);
    if (hWnd) {
        SetForegroundWindow ((HWND)(((DWORD)hWnd) | 0x01));    
        return 0;
    }
    // Register application main window class.
    wc.style = CS_VREDRAW | CS_HREDRAW;       // Window style
    wc.lpfnWndProc = MainWndProc;             // Callback function
    wc.cbClsExtra = 0;                        // Extra class data
    wc.cbWndExtra = 0;                        // Extra window data
    wc.hInstance = hInstance;                 // Owner handle
    wc.hIcon = NULL,                          // Application icon
    wc.hCursor = LoadCursor (NULL, IDC_ARROW); // Default cursor
    wc.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);
    wc.lpszMenuName =  NULL;                  // Menu name
    wc.lpszClassName = szAppName;             // Window class name

    if (RegisterClass (&wc) == 0) return 0;

    // Save program instance handle in global variable.
    hInst = hInstance;

    // Create main window.
    hWnd = CreateWindow (szAppName, TEXT("Menu Bar"),  WS_VISIBLE,
                         CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
                         CW_USEDEFAULT, NULL, NULL, hInstance, NULL);
    if (!IsWindow (hWnd)) return 0;           // Fail if not created.

    // Standard show and update calls
    ShowWindow (hWnd, nCmdShow);
    UpdateWindow (hWnd);
    return hWnd;
}
//----------------------------------------------------------------------
// TermInstance - Program cleanup
//
int TermInstance (HINSTANCE hInstance, int nDefRC) {
    return nDefRC;
}
//======================================================================
// Message handling procedures for main window
//
//----------------------------------------------------------------------
// MainWndProc - Callback function for application window
//
LRESULT CALLBACK MainWndProc (HWND hWnd, UINT wMsg, WPARAM wParam, 
                              LPARAM lParam) {
    INT i;
    //
    // Search message list to see if we need to handle this
    // message. If in list, call procedure.
    //
    for (i = 0; i < dim(MainMessages); i++) {
        if (wMsg == MainMessages[i].Code)
            return (*MainMessages[i].Fxn)(hWnd, wMsg, wParam, lParam);
    }
    return DefWindowProc (hWnd, wMsg, wParam, lParam);
}
//----------------------------------------------------------------------
// DoCreateMain - Process WM_CREATE message for window.
//
LRESULT DoCreateMain (HWND hWnd, UINT wMsg, WPARAM wParam, 
                      LPARAM lParam) {
    SIPINFO si;
    HWND hwndChild;
    int i, cx, cy;

    // Initialize the shell to activate info structure.
    memset (&sai, 0, sizeof (sai));
    sai.cbSize = sizeof (sai);

    // Create menu bar and check for errors.
    hwndMenuBar = MyCreateMenuBar (hWnd, ID_TOOLBAR1);
    if (!hwndMenuBar) {
        MessageBox (hWnd, TEXT("Couldn\'t create MenuBar"), 
                    szAppName, MB_OK);
        DestroyWindow (hWnd);
        return 0;
    }
    // Set menu check mark.
    MyCheckMenu (IDM_DOSIMPLENEW);          

    // Create report window.  It will be sized in the WM_SIZE handler.
    hwndChild = CreateWindowEx (0, TEXT ("listbox"), TEXT (""), 
                                WS_VISIBLE | WS_CHILD | WS_VSCROLL |
                                LBS_USETABSTOPS | LBS_NOINTEGRALHEIGHT,
                                0, 0, 0, 0, hWnd, (HMENU)IDC_RPTLIST, 
                                hInst, NULL);
    // Destroy frame if window not created.
    if (!IsWindow (hwndChild)) {
        DestroyWindow (hWnd);
        return 0;
    }
    // Initialize tab stops for display list box.
    i = 8;
    SendMessage (hwndChild, LB_SETTABSTOPS, 1, (LPARAM)&i);

    // Query the sip state and size our window appropriately.
    memset (&si, 0, sizeof (si));
    si.cbSize = sizeof (si);
    SHSipInfo(SPI_GETSIPINFO, 0, (PVOID)&si, FALSE); 
    cx = si.rcVisibleDesktop.right - si.rcVisibleDesktop.left;
    cy = si.rcVisibleDesktop.bottom - si.rcVisibleDesktop.top;

    // If the sip is not shown, or is showing but not docked, the
    // desktop rect doesn't include the height of the menu bar.
    if (!(si.fdwFlags & SIPF_ON) ||
        ((si.fdwFlags & SIPF_ON) && !(si.fdwFlags & SIPF_DOCKED))) {
        RECT rectMB;
        GetWindowRect (hwndMenuBar, &rectMB);
        cy -= (rectMB.bottom - rectMB.top);  
    }    
    SetWindowPos (hWnd, NULL, 0, 0, cx, cy, SWP_NOMOVE | SWP_NOZORDER);
    return 0;
}
//----------------------------------------------------------------------
// DoSizeMain - Process WM_SIZE message for window.
//
LRESULT DoSizeMain (HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam){
    RECT rect;

    GetClientRect (hWnd, &rect);
    SetWindowPos (GetDlgItem (hWnd, IDC_RPTLIST), NULL, 0, 0,
                  rect.right - rect.left, rect.bottom - rect.top,
                  SWP_NOZORDER);
    return 0;
}
//----------------------------------------------------------------------
// DoCommandMain - Process WM_COMMAND message for window.
//
LRESULT DoCommandMain (HWND hWnd, UINT wMsg, WPARAM wParam,
                       LPARAM lParam) {
    WORD    idItem, wNotifyCode;
    HWND hwndCtl;
    INT  i;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蓝色福利精品导航| 99久久免费国产| 成人精品视频.| 制服.丝袜.亚洲.中文.综合| 国产欧美日韩在线看| 性欧美大战久久久久久久久| 成人激情校园春色| 欧美精品一区二区三区蜜桃视频| 一区二区三区在线观看国产| 丁香婷婷综合色啪| 欧美成人精精品一区二区频| 午夜精品福利一区二区蜜股av| av在线不卡免费看| 久久精品视频一区二区三区| 蜜臀av一区二区在线观看| 欧美影视一区在线| 亚洲一区二区在线观看视频 | 久久久亚洲国产美女国产盗摄| 亚洲在线一区二区三区| av一本久道久久综合久久鬼色| 国产性做久久久久久| 久久精品国产久精国产爱| 日韩视频123| 日韩成人午夜电影| 欧美男女性生活在线直播观看| 夜夜爽夜夜爽精品视频| 91麻豆蜜桃一区二区三区| 中文无字幕一区二区三区 | 日韩专区中文字幕一区二区| 91免费版在线| 亚洲欧美另类图片小说| 91麻豆123| 一区二区三区不卡在线观看| 成年人网站91| 亚洲视频免费观看| 在线免费不卡电影| 亚洲3atv精品一区二区三区| 欧美私人免费视频| 日日夜夜精品免费视频| 67194成人在线观看| 蜜桃视频在线观看一区| 精品久久久久久久久久久久包黑料 | 国产日本亚洲高清| 国产99久久久国产精品免费看| 欧美激情一区二区三区全黄| 91一区二区三区在线播放| 亚洲一区在线观看视频| 欧美日韩视频在线一区二区| 日本欧美一区二区| 久久久久久久国产精品影院| 暴力调教一区二区三区| 一个色综合网站| 91麻豆精品国产91久久久更新时间| 日产欧产美韩系列久久99| 精品久久久久久综合日本欧美| 丁香网亚洲国际| 亚洲综合一区二区三区| 日韩欧美色综合网站| 国产成人精品1024| 午夜精品久久久久久久99水蜜桃| 精品免费日韩av| 色综合天天综合色综合av | 中文字幕一区二区三区乱码在线 | 91在线观看高清| 天堂蜜桃91精品| 国产精品水嫩水嫩| 欧美一区二区黄色| 成人在线视频一区二区| 亚洲va欧美va国产va天堂影院| 久久午夜国产精品| 欧美午夜精品久久久久久孕妇| 国产一区二区三区四区在线观看| 中文字幕在线不卡视频| 欧美一级一区二区| 91影视在线播放| 久久99久久久久久久久久久| 有坂深雪av一区二区精品| www亚洲一区| 欧美三级韩国三级日本三斤| 高清国产一区二区| 热久久国产精品| 亚洲色图丝袜美腿| 久久精品欧美日韩精品| 6080午夜不卡| 一本高清dvd不卡在线观看| 国内国产精品久久| 五月天婷婷综合| 亚洲三级小视频| 中文一区二区在线观看| 亚洲精品在线电影| 在线不卡的av| 欧美性大战久久久久久久蜜臀| 国产99久久久久| 韩国精品主播一区二区在线观看 | 一区二区三区资源| 国产精品乱码一区二区三区软件| 欧美不卡在线视频| 欧美老年两性高潮| 欧美日韩国产高清一区| 色欧美日韩亚洲| fc2成人免费人成在线观看播放| 国产精品资源在线| 国产一区二区影院| 精品一二线国产| 麻豆成人久久精品二区三区小说| 亚洲成人中文在线| 亚洲国产aⅴ天堂久久| 亚洲综合激情网| 一区二区三区日韩精品| 亚洲自拍偷拍av| 亚洲二区在线视频| 丝袜a∨在线一区二区三区不卡| 亚洲精品久久7777| 一区二区三区在线视频观看| 一区二区国产视频| 亚洲国产视频一区| 亚洲成人av一区二区| 午夜欧美2019年伦理| 日本视频中文字幕一区二区三区| 亚洲国产精品一区二区www在线| 一区二区三区不卡在线观看 | 国产精品不卡一区| 中文字幕一区二区三区四区| 亚洲视频免费在线观看| 亚洲激情网站免费观看| 午夜影视日本亚洲欧洲精品| 视频一区中文字幕国产| 国内精品伊人久久久久影院对白| 国内精品免费**视频| 国产成人鲁色资源国产91色综| 国产白丝精品91爽爽久久| 成人福利在线看| 欧美优质美女网站| 日韩女优制服丝袜电影| 国产欧美一区二区精品性色| 中文字幕制服丝袜一区二区三区| 一区二区三区中文字幕精品精品| 视频一区在线播放| 国产盗摄一区二区三区| 97精品国产露脸对白| 欧美性xxxxx极品少妇| 在线播放亚洲一区| 久久久久国产免费免费| 中文字幕亚洲欧美在线不卡| 五月天国产精品| 国产一区二区三区在线观看免费| 99国产精品久久久久久久久久| 欧美男人的天堂一二区| 久久蜜桃一区二区| 亚洲国产日韩一级| 国产乱码精品1区2区3区| 99re66热这里只有精品3直播 | 91九色02白丝porn| 欧美va亚洲va| 亚洲免费看黄网站| 国产综合色精品一区二区三区| 色婷婷亚洲精品| 精品国产人成亚洲区| 一区二区三区四区乱视频| 麻豆国产91在线播放| 91国偷自产一区二区三区观看| 欧美变态凌虐bdsm| 亚洲一区二区三区免费视频| 国产一区二区h| 欧美精品日日鲁夜夜添| 国产精品全国免费观看高清| 日韩精品午夜视频| 99久久精品国产麻豆演员表| 欧美成人国产一区二区| 亚洲国产一区视频| 91色|porny| 中文字幕av一区 二区| 久久精品国产精品亚洲红杏| 色悠久久久久综合欧美99| 久久久久久久久久久电影| 日韩精品电影一区亚洲| 欧美在线观看一区| 亚洲色图清纯唯美| 成人深夜福利app| 欧美一级日韩免费不卡| 一区二区高清免费观看影视大全 | 国内欧美视频一区二区| 欧美一区二区播放| 亚洲成国产人片在线观看| 91丨九色丨国产丨porny| 国产日韩欧美制服另类| 国产一区二区三区在线观看免费视频| 欧美情侣在线播放| 五月天中文字幕一区二区| 在线观看免费成人| 一区二区在线观看视频在线观看| 丁香桃色午夜亚洲一区二区三区 | 欧美一级日韩一级| 喷白浆一区二区| 日韩欧美卡一卡二| 九色综合狠狠综合久久| 日韩精品中文字幕在线一区| 美女一区二区视频| 欧美大片一区二区| 国产一区二区视频在线播放|