遍匈 / Windows園殻 / 10、暇汽式凪麿彿坿 /

屈、Windows暇汽!検強起竃塀暇汽

艇珊辛參壓短嗤競蚊暇汽双議秤趨和聞喘暇汽?匆祥頁傍?艇辛參聞起竃塀暇汽竃孖壓徳鳥競蚊議販採了崔。匯嶽圭隈頁聞喘報炎嘔囚栖尼強起竃塀暇汽。殻會10-6侭幣議POPMENU傍苧阻宸嶽圭隈。

殻會10-6 POPMENU
 
POPMENU.C
 
/*----------------------------------------------------------------------
 
 POPMENU.C -- Popup Menu Demonstration
 
 (c) Charles Petzold, 1998
 
-------------------------------------------------------------------------*/
 
#include <windows.h>
 
#include "resource.h"
 
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
 
HINSTANCE hInst ;
 
TCHAR szAppName[] = TEXT ("PopMenu") ;
 
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
 
 PSTR szCmdLine, int iCmdShow)
 
{
 
 HWND hwnd ;
 
 MSG msg ;
 
 WNDCLASS wndclass ;
 
 
 
 wndclass.style = CS_HREDRAW | CS_VREDRAW ;
 
 wndclass.lpfnWndProc = WndProc ;
 
 wndclass.cbClsExtra = 0 ;
 
 wndclass.cbWndExtra = 0 ;
 
 wndclass.hInstance = hInstance ;
 
 wndclass.hIcon = LoadIcon (NULL, szAppName) ;
 
 wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
 
 wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
 
 wndclass.lpszMenuName = NULL ;
 
 wndclass.lpszClassName = szAppName ;
 
 
 
 if (!RegisterClass (&wndclass))
 
 {
 
 MessageBox ( NULL, TEXT ("This program requires Windows NT!"),
 
 szAppName, MB_ICONERROR) ;
 
 return 0 ;
 
 }
 
 
 
 hInst = hInstance ;
 
 hwnd = CreateWindow ( szAppName, TEXT ("Popup Menu Demonstration"),
 
 WS_OVERLAPPEDWINDOW,
 
 CW_USEDEFAULT, CW_USEDEFAULT,
 
 CW_USEDEFAULT, CW_USEDEFAULT,
 
 NULL, NULL, hInstance, NULL) ;
 
 ShowWindow (hwnd, iCmdShow) ;
 
 UpdateWindow (hwnd) ;
 
 
 
 while (GetMessage (&msg, NULL, 0, 0))
 
 {
 
 TranslateMessage (&msg) ;
 
 DispatchMessage (&msg) ;
 
 }
 
 return msg.wParam ;
 
}
 
LRESULT CALLBACK WndProc ( HWND hwnd, UINT message, WPARAM wParam,LPARAM lParam)
 
{
 
 static HMENU hMenu ;
 
 static int idColor [5] = {WHITE_BRUSH, LTGRAY_BRUSH, GRAY_BRUSH,
 
 DKGRAY_BRUSH, BLACK_BRUSH } ;
 
 static int iSelection = IDM_BKGND_WHITE ;
 
 POINT point ;
 
 
 
 switch (message)
 
 {
 
 case WM_CREATE:
 
 hMenu = LoadMenu (hInst, szAppName) ;
 
 hMenu = GetSubMenu (hMenu, 0) ;
 
 return 0 ;
 
 case WM_RBUTTONUP:
 
 point.x = LOWORD (lParam) ;
 
 point.y = HIWORD (lParam) ;
 
 ClientToScreen (hwnd, &point) ;
 
 
 
 TrackPopupMenu (hMenu, TPM_RIGHTBUTTON, point.x, point.y, 0, hwnd, NULL) ;
 
 return 0 ;
 
 
 
 case WM_COMMAND:
 
 switch (LOWORD (wParam))
 
 {
 
 case IDM_FILE_NEW:
 
 case IDM_FILE_OPEN:
 
 case IDM_FILE_SAVE:
 
 case IDM_FILE_SAVE_AS:
 
 case IDM_EDIT_UNDO:
 
 case IDM_EDIT_CUT:
 
 case IDM_EDIT_COPY:
 
 case IDM_EDIT_PASTE:
 
 case IDM_EDIT_CLEAR:
 
 MessageBeep (0) ;
 
 return 0 ;
 
 
 
 case IDM_BKGND_WHITE: // Note: Logic below
 
 case IDM_BKGND_LTGRAY: // assumes that IDM_WHITE
 
 case IDM_BKGND_GRAY: // through IDM_BLACK are
 
 case IDM_BKGND_DKGRAY: // consecutive numbers in
 
 case IDM_BKGND_BLACK: // the order shown here.
 
 
 
 CheckMenuItem (hMenu, iSelection, MF_UNCHECKED) ;
 
 iSelection = LOWORD (wParam) ;
 
 CheckMenuItem (hMenu, iSelection, MF_CHECKED) ;
 
 
 
 SetClassLong (hwnd, GCL_HBRBACKGROUND, (LONG)
 
 GetStockObject
 
 (idColor [LOWORD (wParam) - IDM_BKGND_WHITE])) ;
 
 
 
 InvalidateRect (hwnd, NULL, TRUE) ;
 
 return 0 ;
 
 
 
 case IDM_APP_ABOUT:
 
 MessageBox (hwnd, TEXT ("Popup Menu Demonstration Program\n")
 
 TEXT ("(c) Charles Petzold, 1998"),
 
 szAppName, MB_ICONINFORMATION | MB_OK) ;
 
 return 0 ;
 
 
 
 case IDM_APP_EXIT:
 
 SendMessage (hwnd, WM_CLOSE, 0, 0) ;
 
 return 0 ;
 
 
 
 case IDM_APP_HELP:
 
 MessageBox (hwnd, TEXT ("Help not yet implemented!"),
 
 szAppName, MB_ICONEXCLAMATION | MB_OK) ;
 
 return 0 ;
 
 }
 
 break ;
 
 
 
 case WM_DESTROY:
 
 PostQuitMessage (0) ;
 
 return 0 ;
 
 }
 
 return DefWindowProc (hwnd, message, wParam, lParam) ;
 
}
 
POPMENU.RC ?姜村?
 
//Microsoft Developer Studio generated resource script.
 
#include "resource.h"
 
#include "afxres.h"
 
/////////////////////////////////////////////////////////////////////////////
 
// Menu
 
POPMENU MENU DISCARDABLE
 
BEGIN
 
 POPUP "MyMenu"
 
 BEGIN
 
 POPUP "&File"
 
 BEGIN
 
 MENUITEM "&New", IDM_FILE_NEW
 
 MENUITEM "&Open", IDM_FILE_OPEN
 
 MENUITEM "&Save", IDM_FILE_SAVE
 
 MENUITEM "Save &As", IDM_FILE_SAVE_AS
 
 MENUITEM SEPARATOR
 
 MENUITEM "E&xit", IDM_APP_EXIT
 
 END
 
 POPUP "&Edit"
 
 BEGIN
 
 MENUITEM "&Undo", IDM_EDIT_UNDO
 
 MENUITEM SEPARATOR
 
 MENUITEM "Cu&t", IDM_EDIT_CUT
 
 MENUITEM "&Copy", IDM_EDIT_COPY
 
 MENUITEM "&Paste", IDM_EDIT_PASTE
 
 MENUITEM "De&lete", IDM_EDIT_CLEAR
 
END
 
 POPUP "&Background"
 
BEGIN
 
 MENUITEM "&White", IDM_BKGND_WHITE, CHECKED
 
MENUITEM "&Light Gray", IDM_BKGND_LTGRAY
 
MENUITEM "&Gray", IDM_BKGND_GRAY
 
MENUITEM "&Dark Gray", IDM_BKGND_DKGRAY
 
MENUITEM "&Black", IDM_BKGND_BLACK
 
END
 
 POPUP "&Help"
 
BEGIN
 
MENUITEM "&Help...", IDM_APP_HELP
 
 MENUITEM "&About PopMenu...", IDM_APP_ABOUT
 
END
 
 END
 
END
 
RESOURCE.H ?姜村?
 
// Microsoft Developer Studio generated include file.
 
// Used by PopMenu.rc
 
#define IDM_FILE_NEW 40001
 
#define IDM_FILE_OPEN 40002
 
#define IDM_FILE_SAVE 40003
 
#define IDM_FILE_SAVE_AS 40004
 
#define IDM_APP_EXIT 40005
 
#define IDM_EDIT_UNDO 40006
 
#define IDM_EDIT_CUT 40007
 
#define IDM_EDIT_COPY 40008
 
#define IDM_EDIT_PASTE 40009
 
#define IDM_EDIT_CLEAR 40010
 
#define IDM_BKGND_WHITE 40011
 
#define IDM_BKGND_LTGRAY 40012
 
#define IDM_BKGND_GRAY 40013
 
#define IDM_BKGND_DKGRAY 40014
 
#define IDM_BKGND_BLACK 40015
 
#define IDM_APP_HELP 40016
 
#define IDM_APP_ABOUT 40017
 

彿坿宙峰亀POPMENU.RC協吶議暇汽嚥MENUDEMO.RC嶄議暇汽掲械屢貌。音揖議頁?壓競蚊暇汽嶄峪淫根匯??匯倖起竃塀暇汽仝MyMenu々?万柵出仝File々、仝Edit々、仝Background々才仝Help々僉?。宸膨倖僉?換岷匯佩仇竃孖壓起竃塀暇汽貧?遇音頁邦峠匯双仇竃孖壓麼暇汽貧。

壓WndProc嶄議WM_CREATE侃尖豚寂?POPMENU函誼緩起竃塀暇汽議鞘凹?祥頁揮嗤猟忖仝MyMenu々議椎倖起竃塀暇汽?

hMenu = LoadMenu (hInst, szAppName) ;
 
hMenu = GetSubMenu (hMenu, 0) ;
 

壓WM_RBUTTONUP嶧連侃尖豚寂?POPMENU戻工阻報炎峺寞議了崔?繍緩了崔廬算葎徳鳥恫炎?壅繍恫炎峙勧弓公TrackPopupMenu?

point.x = LOWORD (lParam) ;
 
point.y = HIWORD (lParam) ;
 
ClientToScreen (hwnd, &point) ;
 
TrackPopupMenu (hMenu, TPM_RIGHTBUTTON, point.x, point.y,
 
 0, hwnd, NULL) ;
 

隼朔?Windows?塋廠欬灑弌?File々、仝Edit々、仝Background々才仝Help々?議起竃塀暇汽。僉夲凪嶄販採匯?脅辛參聞廼耗議起竃塀暇汽?塋菖旃勹滷?傍ズ垜閶誨三禝腸傍ヒ姿硃?

泌惚勣聞喘嚥乎殻會議麼暇汽屢揖議暇汽旺揮嗤TrackPopupMenu?艇氏囑欺匯乂諒籾?咀葎痕方俶勣起竃塀暇汽鞘凹。壓仝Microsoft Knowledge Base々猟嫗ID Q99806嗤戻工匯乂佚連。

AltStyle によって変換されたページ (->オリジナル) /