📄 demo.c
字号:
/************************************************************************* This is a simple of how to Programming a Application , it * show some main functions such as "Menu" "DialogBox" "EditBox"* and the others .*NOTE: to use menu_info in Menu ; dialog_info in DialogBox* 1.* LoadMenuEx(NAMEINFO *minfo, LPCSTR lpMenuName,int count);* | | |* menu_info MENU NAME Total numbers* 2.* DialogBoxEx(HINSTANCE, LPCSTR, HWND, DLGPROC, NAMEINFO * , int);* | | | | | |* NULL NAME Parent proc_func dialog_info Max Items************************************************************************/#include <stdio.h>#include <stdlib.h>#include <windows.h>#include <wintools.h>#include <resources.h>#include <xime.h>#include "demo.h"extern NAMEINFO menu_info[]; //Menu data in (.rc -> .res.c ) extern NAMEINFO dialog_info[]; //Dialog data in (.rc -> .res.c ) HFONT GetSystemFontObject( void );extern int WINAPI RegisterHelpClass(HINSTANCE hInstance); extern int WINAPI RegisterAboutClass( HINSTANCE hInstance );void SetDefaultSwitchWindow (HWND);HWND hxime;void ReturnXime(HWND hxime_parent){ if ( hxime_parent ) { ShowWindow( hxime, SW_HIDE ); setXime( hxime_parent ); }}HWND CallXime(HWND hwnd){ HWND pwin; ShowWindow( hxime, SW_SHOW ); pwin = setXime( hwnd ); selectXime( XIME_DEFAULT ); return ( pwin) ;}LRESULT CALLBACK create_proc( HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam ){ static HWND hxime_parent =NULL; switch ( iMsg ) { case WM_CREATE: hxime_parent = CallXime(hwnd); break; case WM_COMMAND: switch ( LOWORD( wParam ) ) { case BTN_DEMO_CREATE: ReturnXime(hxime_parent); EndDialog( hwnd, TRUE ); break; } break; default: return DefWindowProc( hwnd, iMsg, wParam, lParam ); } return 0;}LRESULT CALLBACK main_proc( HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam ){ PAINTSTRUCT ps; HDC hdc; switch ( iMsg ) { case WM_PAINT: hdc = BeginPaint( hwnd, &ps ); SelectObject (hdc, GetSystemFontObject ()); TextOut( hdc, P1X, P1Y, STR1, - 1 ); TextOut( hdc, P2X, P2Y, STR2, - 1 ); EndPaint( hwnd, &ps ); break; case WM_COMMAND: switch ( LOWORD( wParam ) ) { case BTN_BROWSE_CREATE: DialogBoxEx( NULL, "DEMO_CREATE", hwnd, create_proc, dialog_info, MAX_CREATE ); break; case BTN_BROWSE_CLOSE: //Button Message case ID_CLOSE: //Menu Message PostQuitMessage( 0 ); break; case ID_HELP: showhelp("demo","demo"); break; case ID_ABOUT: showabout("demo"); break; } break; default: return DefWindowProc( hwnd, iMsg, wParam, lParam ); } return 0;}int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow ){ static char szAppName[] = "DEMO"; HWND hwnd; WNDCLASS wndclass; MSG msg; wndclass.style = CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW | CS_OWNDC; wndclass.lpfnWndProc = ( WNDPROC ) main_proc; wndclass.cbClsExtra = 0; wndclass.cbWndExtra = 0; wndclass.hInstance = 0; wndclass.hIcon = 0; wndclass.hCursor = 0; wndclass.hbrBackground = ( HBRUSH ) GetStockObject( WHITE_BRUSH ); wndclass.lpszMenuName = "BRMENU"; wndclass.lpszClassName = szAppName; RegisterClass( &wndclass ); hwnd = CreateWindowEx( 0L, szAppName, "DEMO", WS_PDAMENU | WS_VISIBLE, 0, 0, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL ); hwnd->hMenu = LoadMenuEx(menu_info,"BRMENU",MAX_MENU); hxime = initXime( hwnd, XIME_DEFAULT ); //Initiate Input Box (Xime) ShowWindow( hxime, SW_HIDE ); // to hide Xime. CreateWindowEx(0L,"BUTTON", CAPTION_CREATE, WS_CHILD|WS_VISIBLE |BS_BEEP, 33,219,30,15, hwnd,(HMENU)BTN_BROWSE_CREATE,NULL,NULL); CreateWindowEx(0L,"BUTTON", CAPTION_EXIT, WS_CHILD|WS_VISIBLE |BS_BEEP, 96,219,30,15, hwnd,(HMENU)BTN_BROWSE_CLOSE,NULL,NULL); /* Set Window Handle to recieve task-switch messages */ SetDefaultSwitchWindow( hwnd ); RegisterHelpClass(hInstance); RegisterAboutClass( hInstance ); ShowWindow( hwnd, iCmdShow ); UpdateWindow( hwnd ); while ( GetMessage( &msg, NULL, 0, 0 ) ) { TranslateMessage( &msg ); DispatchMessage( &msg ); } return msg.wParam;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -