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

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

?? ltweight.cpp

?? Window Wrapper for WinCE Win32 "Hello World" a
?? CPP
字號:
//***************************************************************************
//  LtWeight.cpp
//
//  This is a WinCE application using the Win32 API.  The difference between
//  this and a simple "hello" program is the object wrapper for each window.
//
//  Requirements:
//    1. create a simple Win32 app
//    2. Create the main window using a call to CreateWindow or a variant
//    3. Create a simple base class that allows the use of objects
//    4. Allow child windows to inherit from the base class
//  Secondary Goals:
//
//  Known Problems:
//***************************************************************************

#include "stdafx.h"
#include "LtWeight.h"
#include <commctrl.h>
#include <aygshell.h>
#include <sipapi.h>

#define MAX_LOADSTRING 100

static SHACTIVATEINFO s_sai;

CMainWindow MainWindow;


//***************************************************************************
//  FUNCTION: WinMain
//
//  PURPOSE:  Entry point and Main Message Loop.
//
//  COMMENTS:
//***************************************************************************
int WINAPI WinMain( HINSTANCE hInstance,
                    HINSTANCE hPrevInstance,
                    LPTSTR    lpCmdLine,
                    int       nCmdShow )
{
   MSG msg;
   HACCEL hAccelTable;

   // Perform application initialization
   if ( !MainWindow.InitInstance( hInstance, nCmdShow ) )
   {
      return FALSE;
   }

   hAccelTable = ::LoadAccelerators( hInstance, (LPCTSTR)IDC_LTWEIGHT );

   // Main message loop
   int status;
   while ( ( status = GetMessage( &msg, NULL, 0, 0 ) ) != 0 )
   {
      if ( status == -1 )
         return -1;
      if ( !TranslateAccelerator( msg.hwnd, hAccelTable, &msg ) )
      {
         TranslateMessage( &msg );
         DispatchMessage( &msg );
      }
   }

   return msg.wParam;
}   /*   WinMain   */


//***************************************************************************
//  FUNCTION: MyRegisterClass()
//
//  PURPOSE:  Registers the window class.
//
//  COMMENTS:
//    It is important to call this function so that the application 
//    will get 'well formed' small icons associated with it.
//***************************************************************************
ATOM CMainWindow::MyRegisterClass( HINSTANCE hInstance, LPTSTR szWindowClass )
{
   WNDCLASS wc;

    wc.style         = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc   = (WNDPROC) BaseWndProc;
    wc.cbClsExtra    = 0;
    wc.cbWndExtra    = 0;
    wc.hInstance     = hInstance;
    wc.hIcon         = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_LTWEIGHT));
    wc.hCursor       = 0;
    wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
    wc.lpszMenuName  = 0;
    wc.lpszClassName = szWindowClass;

   return RegisterClass( &wc );
}   /*   MyRegisterClass   */


//***************************************************************************
//  FUNCTION: InitInstance
//
//  PURPOSE:  Saves instance handle and creates main window
//
//  COMMENTS:
//    In this function, we save the instance handle.  Load the app strings
//    for title and class.  Switch to an already loaded instance of this app
//    if one is already found running.  Create and display the main window.
//***************************************************************************
BOOL CMainWindow::InitInstance( HINSTANCE hInstance, int nCmdShow )
{
   HWND  hWnd = NULL;
   TCHAR szTitle[MAX_LOADSTRING];            // The title bar text
   TCHAR szWindowClass[MAX_LOADSTRING];      // The window class name

   hwndCB = 0;
   hInst = hInstance;      // Store instance handle in our global variable

   // Initialize global strings
   LoadString( hInstance, IDC_LTWEIGHT, szWindowClass, MAX_LOADSTRING );
   LoadString( hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING );

   // If it is already running, then focus on the window
   hWnd = FindWindow(szWindowClass, szTitle);   
   if ( hWnd ) 
   {
      SetForegroundWindow ((HWND) (((DWORD)hWnd) | 0x01));    
      return 0;
   } 

   MyRegisterClass( hInstance, szWindowClass );
   
   RECT  rect;
   GetClientRect( hWnd, &rect );
   
   hWnd = CreateWindow( szWindowClass, szTitle, WS_VISIBLE,
                        CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
                        CW_USEDEFAULT, NULL, NULL, hInstance, (void *)this );
   if ( !hWnd )
   {  
      return FALSE;
   }
   // When the main window is created using CW_USEDEFAULT the height of the menubar (if one
   // is created is not taken into account). So we resize the window after creating it
   // if a menubar is present
   {
      RECT rc;
      GetWindowRect( hWnd, &rc );
      rc.bottom -= MENU_HEIGHT;
      if ( hwndCB )
         MoveWindow( hWnd, rc.left, rc.top, rc.right, rc.bottom, FALSE );
   }

   ShowWindow( hWnd, nCmdShow );
   UpdateWindow( hWnd );

   return TRUE;
}   /*   InitInstance   */


//***************************************************************************
//  FUNCTION: CreateRpCommandBar
//
//  PURPOSE:  Create the Menu Bar
//
//  Comments:
//    MenuBar became CommandBar in CE 3.0 when additional functionality
//    was added.
//***************************************************************************
HWND CMainWindow::CreateRpCommandBar( HWND hwnd )
{
   SHMENUBARINFO mbi;

   memset( &mbi, 0, sizeof( SHMENUBARINFO ) );
   mbi.cbSize     = sizeof( SHMENUBARINFO );
   mbi.hwndParent = hwnd;
   mbi.nToolBarId = IDM_MENU;
   mbi.hInstRes   = hInst;
   mbi.nBmpId     = 0;
   mbi.cBmpImages = 0;

   if ( !SHCreateMenuBar( &mbi ) ) 
      return NULL;

   return mbi.hwndMB;
}   /*   CreateRpCommandBar   */


//***************************************************************************
//  FUNCTION: BaseWndProc
//
//  PURPOSE:  Pass the callback message on to the window owner.
//
//  COMMENTS:
//    All Windows Message Loops can be inherited from this method.  When it
//    gets a message, the pointer to the owning object is retrieved and the
//    message is sent to the Window Procedure for that object.
//
//    On entry the object pointers are saved as the windows are created
//    along with win handle and the instance.
//
//    Upon exit it is decided if a call needs to be made to the Default
//    Window Procedure (DefWindowProc).  This way all of the WndProcs can
//    be the same coding style regardless of window type (window vs dialog).
//***************************************************************************
LRESULT CALLBACK CBaseWindow::BaseWndProc( HWND hwnd, UINT msg,
                                           WPARAM wParam, LPARAM lParam )
{
   // check to see if a copy of the 'this' pointer needs to be saved
   if ( msg == WM_CREATE )
   {
      CBaseWindow *pObj = reinterpret_cast<CBaseWindow *>((long)((LPCREATESTRUCT)lParam)->lpCreateParams);
      ::SetWindowLong( hwnd, GWL_USERDATA, (LONG)((LPCREATESTRUCT)lParam)->lpCreateParams );
      pObj->hWnd = hwnd;
      pObj->DlgFlag = FALSE;
      if ( pObj->hInst == 0 )
         pObj->hInst = MainWindow.hInst;
   }
   if ( msg == WM_INITDIALOG )
   {
      CBaseWindow *pObj = reinterpret_cast<CBaseWindow *>(lParam);
      ::SetWindowLong( hwnd, GWL_USERDATA, lParam );
      pObj->hWnd = hwnd;
      pObj->DlgFlag = TRUE;
      pObj->hInst = MainWindow.hInst;
   }

   BOOL bProcessed = FALSE;
   LRESULT lResult;

   // Retrieve the pointer
   CBaseWindow *pObj = WinGetLong<CBaseWindow *>( hwnd, GWL_USERDATA );

   // Filter message through child classes
   if ( pObj )
      lResult = pObj->WndProc( hwnd, msg, wParam, lParam, &bProcessed );
   else
      return ( pObj->DlgFlag ? FALSE : TRUE ); // message not processed

   if ( pObj->DlgFlag )
      return bProcessed;     // processing a dialog message return TRUE if processed
   else
      if ( !bProcessed )
         // If message was unprocessed and not a dialog, send it back to Windows.
         lResult = DefWindowProc( hwnd, msg, wParam, lParam );

   return lResult;           // processing a window message return FALSE if processed
}   /*   BaseWndProc   */


//***************************************************************************
//  FUNCTION: WndProc
//
//  PURPOSE:  Processes messages for the main window.
//
//  COMMENTS:
//***************************************************************************
LRESULT CMainWindow::WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam, PBOOL pbProcessed )
{
   HDC hdc;
   int wmId, wmEvent;
   PAINTSTRUCT ps;
   TCHAR szHello[MAX_LOADSTRING];

   // call the base class first
   LRESULT lResult = CBaseWindow::WndProc( hWnd, message, wParam, lParam, pbProcessed );
   BOOL bWasProcessed = *pbProcessed;
   *pbProcessed = TRUE;

   switch ( message )
   {
      case WM_COMMAND:
         wmId    = LOWORD(wParam); 
         wmEvent = HIWORD(wParam); 
         // Parse the menu selections:
         switch (wmId)
         {  
            case IDM_HELP_ABOUT:
               {
                  CAboutWindow *pAboutWindow = new( CAboutWindow );
                  DialogBoxParam( GetInstance(), (LPCTSTR)IDD_ABOUTBOX, hWnd,
                                  (DLGPROC)pAboutWindow->BaseWndProc, (long)pAboutWindow );
                  delete pAboutWindow;
               }
               break;
            case IDOK:
            case IDM_EXIT:
               SendMessage( hWnd, WM_ACTIVATE, MAKEWPARAM(WA_INACTIVE, 0), (LPARAM)hWnd );
               SendMessage ( hWnd, WM_CLOSE, 0, 0 );
               break;
            default:
               // the message was not processed
               // indicate if the base class handled it
               *pbProcessed = bWasProcessed;
               lResult = FALSE;
               return lResult;
         }
         break;
      case WM_CREATE:
         hwndCB = CreateRpCommandBar( hWnd );
         break;
      case WM_PAINT:
         RECT rt;
         hdc = BeginPaint( hWnd, &ps );
         GetClientRect( hWnd, &rt );
         LoadString( GetInstance(), IDS_HELLO, szHello, MAX_LOADSTRING );
         DrawText( hdc, szHello, _tcslen( szHello ), &rt, 
                   DT_SINGLELINE | DT_VCENTER | DT_CENTER );
         EndPaint( hWnd, &ps );
         break; 
      case WM_DESTROY:
         CommandBar_Destroy( hwndCB );
         PostQuitMessage( 0 );
         break;
      case WM_SETTINGCHANGE:
         SHHandleWMSettingChange( hWnd, wParam, lParam, &s_sai );
         break;
      default:
         // the message was not processed
         // indicate if the base class handled it
         *pbProcessed = bWasProcessed;
         lResult = FALSE;
         return lResult;
   }
   return lResult;
}   /*   CMainWindow::WndProc   */


//***************************************************************************
//  FUNCTION: CAboutWindow::WndProc
//
//  PURPOSE:  Mesage handler for the About box.
//
//  Comments:
//***************************************************************************
LRESULT CAboutWindow::WndProc( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam, PBOOL pbProcessed )
{
   SHINITDLGINFO shidi;

   // call the base class first
   LRESULT lResult = CBaseWindow::WndProc( hDlg, message, wParam, lParam, pbProcessed );
   BOOL bWasProcessed = *pbProcessed;
   *pbProcessed = TRUE;

   switch ( message )
   {
      case WM_INITDIALOG:
         // Create a Done button and size the dialog full screen.  
         shidi.dwMask = SHIDIM_FLAGS;
         shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIPDOWN | SHIDIF_SIZEDLGFULLSCREEN;
         shidi.hDlg = hDlg;
         SHInitDialog( &shidi );
         break; 

      case WM_COMMAND:
         if ( LOWORD(wParam) == IDOK )
         {
            EndDialog( hDlg, LOWORD( wParam ) );
            return TRUE;
         }
         // not processed, so just fall through here.

      default:
         // the message was not processed
         // indicate if the base class handled it
         *pbProcessed = bWasProcessed;
         lResult = FALSE;
         return lResult;
   }
   return lResult;
}   /*   CAboutWindow::WndProc   */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品免费免费| 一级特黄大欧美久久久| 国产精品白丝在线| 欧美浪妇xxxx高跟鞋交| 免费观看一级特黄欧美大片| 欧美猛男gaygay网站| 日韩国产欧美在线视频| 一本一道久久a久久精品综合蜜臀| 成人高清免费在线播放| 欧美群妇大交群中文字幕| 91精品国产综合久久国产大片| 国产婷婷色一区二区三区四区| 亚洲精品一二三| 亚洲国产精华液网站w| 91蜜桃免费观看视频| 日本午夜一本久久久综合| 国产精品资源网站| 美女mm1313爽爽久久久蜜臀| av亚洲精华国产精华精| 美女mm1313爽爽久久久蜜臀| 成人激情免费视频| 欧美一区二区三区在线看| 国产精品久久夜| 精品一区二区久久久| 一区二区三区免费| 国产一区中文字幕| 日韩一区有码在线| 久久成人18免费观看| 欧美最猛性xxxxx直播| 日本一区二区在线不卡| 性久久久久久久久久久久| 亚洲欧美偷拍三级| 午夜电影一区二区| 一区二区在线看| 成人性生交大片免费看中文网站| 精品写真视频在线观看| 91啪在线观看| 国产日韩欧美高清在线| 国产欧美日韩综合精品一区二区| 亚洲国产成人精品视频| 99久免费精品视频在线观看 | 精品理论电影在线| 91精品国产综合久久久久久| 日韩精品欧美成人高清一区二区| 国产另类ts人妖一区二区| 色综合久久88色综合天天免费| 国产成人夜色高潮福利影视| 91久久精品一区二区| 久久久亚洲国产美女国产盗摄| 91色.com| 亚洲婷婷国产精品电影人久久| 亚洲美女电影在线| 96av麻豆蜜桃一区二区| 欧美天堂亚洲电影院在线播放| 国产精品欧美极品| 看电影不卡的网站| 午夜av区久久| 玉米视频成人免费看| 不卡一区二区中文字幕| 欧美系列一区二区| 玉足女爽爽91| 欧美亚洲综合在线| 26uuu国产在线精品一区二区| 蜜桃精品视频在线| 欧美日韩国产另类一区| 舔着乳尖日韩一区| 欧美视频日韩视频在线观看| 欧美一区二区三区思思人| 亚洲高清视频的网址| 欧美三级在线视频| 三级欧美在线一区| 国产69精品久久久久毛片| 久久综合色鬼综合色| 精品一区二区三区香蕉蜜桃| 欧美精品一区二区在线观看| 一区二区三区欧美久久| 国产美女精品一区二区三区| 久久蜜桃一区二区| 亚洲一区二区视频| 8v天堂国产在线一区二区| 久久美女艺术照精彩视频福利播放| 久久66热偷产精品| 色天天综合色天天久久| 亚洲欧美日韩国产综合| 青青草97国产精品免费观看无弹窗版| 国产成人亚洲综合色影视| 欧美精三区欧美精三区| 美女脱光内衣内裤视频久久影院| 精品sm捆绑视频| 成人18精品视频| 亚洲国产综合在线| 精品理论电影在线观看| 色婷婷激情综合| 日本一区二区三区四区| 欧美自拍丝袜亚洲| 精品在线观看视频| 亚洲激情男女视频| 欧美变态tickle挠乳网站| 成人av集中营| 日本在线播放一区二区三区| 久久午夜色播影院免费高清| 91成人在线免费观看| 国产欧美一区视频| 91国偷自产一区二区使用方法| 久久黄色级2电影| 亚洲色图第一区| 成人精品视频一区二区三区| 久久综合视频网| 精品一区二区在线观看| 一区二区三区精品在线| 久久精品亚洲麻豆av一区二区| 激情小说亚洲一区| 亚洲成精国产精品女| 国产精品久久久久久久久免费樱桃| 久久99精品久久只有精品| 亚洲欧洲日韩av| 韩国三级中文字幕hd久久精品| 久久亚洲精华国产精华液 | 亚洲国产成人私人影院tom| 国产麻豆视频一区| 欧美高清性hdvideosex| 国产黄色精品视频| 日本视频中文字幕一区二区三区| 国产福利一区二区三区视频| 国产亚洲精品超碰| 国产乱码一区二区三区| 久久综合网色—综合色88| 8x福利精品第一导航| 欧美性三三影院| 色综合中文字幕国产 | 26uuu欧美| 制服丝袜亚洲精品中文字幕| 日韩av电影免费观看高清完整版在线观看| 久久99国产精品成人| 视频一区二区三区中文字幕| 亚洲狠狠丁香婷婷综合久久久| 欧美高清性hdvideosex| 欧美性猛交一区二区三区精品| 成人开心网精品视频| 久久99国内精品| 麻豆精品国产91久久久久久| 久久久久国产免费免费| 成人一区二区三区视频在线观看| 国产真实乱偷精品视频免| 国产精品理伦片| 国产精品久久二区二区| 欧美xxxxx牲另类人与| 欧美一区二区三区电影| 精品视频1区2区| 国产成人免费xxxxxxxx| 免费成人在线影院| 免费欧美日韩国产三级电影| 欧美xxxxxxxxx| 色网站国产精品| 久久av老司机精品网站导航| 久久超级碰视频| 一区二区激情视频| 亚洲综合偷拍欧美一区色| 欧美大黄免费观看| 久久久久久亚洲综合影院红桃| 久久久777精品电影网影网| 欧美在线999| 国产综合久久久久影院| 秋霞影院一区二区| 韩国精品久久久| 午夜电影网一区| 国内精品免费在线观看| 99这里只有久久精品视频| 在线观看日韩精品| 日韩午夜电影在线观看| 成人高清视频免费观看| 欧洲av在线精品| 精品国产91亚洲一区二区三区婷婷| 久久久久97国产精华液好用吗 | 成人黄色小视频| 日产国产欧美视频一区精品| 久久久久国产精品麻豆| 91精品免费观看| 久久蜜桃av一区精品变态类天堂| 国产精品另类一区| 日韩电影免费一区| 亚洲va国产天堂va久久en| 六月丁香综合在线视频| 99re成人在线| 国产精品久久一级| 一二三四社区欧美黄| 亚洲v日本v欧美v久久精品| 激情文学综合网| 日本中文在线一区| 日本vs亚洲vs韩国一区三区二区| 亚洲午夜影视影院在线观看| 精品一区二区在线看| 欧美探花视频资源| 欧美国产精品一区二区三区| 成人免费一区二区三区在线观看| 日本不卡视频在线观看| 亚洲九九爱视频| 成人午夜激情影院| 色综合久久中文字幕| 正在播放亚洲一区|