|
![]() | 作者: chenhu4117 [chenhu4117]
![]() |
登录 |
请帮帮我.我的QQ42698006,邮箱chenhu4117@sina.com.谢谢! |
地主 发表时间: 05-12-06 12:35 |
![]() | 回复: xfcy800 [xfcy800] ![]() |
登录 |
晕,你到网上去搜一下,多的很 |
B1层 发表时间: 05-12-06 16:46 |
![]() | 回复: 286 [unique] ![]() |
登录 |
# include <windows.h> long WINAPI CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hinst,HINSTANCE phinst, PSTR cmdline,int cmdshow) { //the application's name static CHAR Appname[] = TEXT("HexCalc"); //--------------------------------------- HWND hwnd; MSG msg; // window class create WNDCLASS wndclass; wndclass.style = CS_HREDRAW | CS_VREDRAW; wndclass.lpfnWndProc = WndProc; wndclass.cbClsExtra = 0; wndclass.cbWndExtra = DLGWINDOWEXTRA; wndclass.hInstance = hinst; wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION); wndclass.hCursor = LoadCursor(NULL,IDC_ARROW); wndclass.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1); wndclass.lpszMenuName = NULL; wndclass.lpszClassName = Appname; //--------------------------------------- //create and show window if(!RegisterClass(&wndclass)) { MessageBox(NULL,TEXT("This program requires Windows NT!"), Appname,MB_ICONHAND); return 0; } hwnd = CreateDialog(hinst,Appname,0,NULL); ShowWindow(hwnd,cmdshow); UpdateWindow(hwnd); //------------------------------------------------ //send message while(GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg); DispatchMessage(&msg); } //------------------------------------------------ return msg.wParam; } void ShowNumber(HWND hwnd,UINT iNumber) { char szBuffer[20]; wsprintf(szBuffer,TEXT("%X"),iNumber); SetDlgItemText(hwnd,VK_ESCAPE,szBuffer); } DWORD Calclt(UINT iFirstNum,int iOperation,UINT iNum) { switch(iOperation) { case '=': return iNum; case '+': return iFirstNum + iNum; case '-': return iFirstNum - iNum; case '*': return iFirstNum * iNum; case '&': return iFirstNum & iNum; case '|': return iFirstNum | iNum; case '^': return iFirstNum ^ iNum; case '<': return iFirstNum << iNum; case '>': return iFirstNum >> iNum; case '/': return iNum ? iFirstNum / iNum : MAXDWORD; case '%': return iNum ? iFirstNum % iNum : MAXDWORD; default: return 0; } } long WINAPI CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam) { static BOOL bNewNumber = TRUE; static int iOperation = '='; static UINT iNumber,iFirstNum; HWND hButton; //message list or procces switch(message) { case WM_KEYDOWN: if(wParam != VK_LEFT) break; wParam = VK_BACK; case WM_CHAR: if((wParam = (WPARAM)CharUpper((char*)wParam)) == VK_RETURN) wParam = '='; if(hButton = GetDlgItem(hwnd,wParam)) { SendMessage(hButton,BM_SETSTATE,1,0); Sleep(100); SendMessage(hButton,BM_SETSTATE,0,0); } else { MessageBeep(0); break; } case WM_COMMAND: SetFocus(hwnd); if(LOWORD(wParam) == VK_BACK) ShowNumber(hwnd,iNumber /= 16); else if(LOWORD(wParam) == VK_ESCAPE) ShowNumber(hwnd,iNumber = 0); else if(isxdigit(LOWORD(wParam))) { if(bNewNumber) { iFirstNum = iNumber; iNumber = 0; } bNewNumber = FALSE; if(iNumber <= MAXDWORD >> 4) ShowNumber(hwnd,iNumber = 16 * iNumber + wParam - (isdigit(wParam) ? '0' : 'A' - 10)); else MessageBeep(0); } else { if(!bNewNumber) ShowNumber(hwnd,iNumber = Calclt(iFirstNum,iOperation,iNumber)); bNewNumber = TRUE; iOperation = LOWORD(wParam); } return 0; case WM_DESTROY: PostQuitMessage(0); return 0; } //----------------------------------------- return DefWindowProc(hwnd,message,wParam,lParam); } |
B2层 发表时间: 05-12-07 16:35 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号