C++ 消息实现HEX字串转",0x"格式源码
C++ 2008 中消息实现HEX字串转",0x"格式源码:#include "resource.h"#include <wtypes.h>
#include <winuser.h>
// 全局变量:
HINSTANCE g_hIns; // 当前实例
HWND g_hCtrlWnd = NULL;
LRESULT CALLBACK CtrlWndProc(HWND ,UINT ,WPARAM ,LPARAM );//主窗口处理函数
int WINAPI WinMain(HINSTANCE hIns,HINSTANCE hPre,LPSTR lpCmdLine,int nCmdShow)
{
WNDCLASS WndClass;
TCHAR szCtrlPanelClass[]=TEXT("FormMain");// 主窗口类名
MSG msg;
g_hIns=hIns;// 将实例句柄存储在全局变量中
//注册窗口类开始
/*typedef struct _WNDCLASS {
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCEhInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
} WNDCLASS, *PWNDCLASS; */
WndClass.style=CS_VREDRAW|CS_HREDRAW;
WndClass.lpfnWndProc=CtrlWndProc;
WndClass.cbClsExtra=0;
WndClass.cbWndExtra=DLGWINDOWEXTRA;
WndClass.hInstance=hIns;
WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
WndClass.hbrBackground=(HBRUSH)(COLOR_BTNFACE+1);
WndClass.lpszMenuName=NULL;
WndClass.lpszClassName=szCtrlPanelClass;
if(!RegisterClass(&WndClass))
{
MessageBox(NULL,TEXT("窗口注册失败!"),TEXT("出错"),MB_OK);
return 0;
}
//注册窗口类结束
//保存实例句柄并创建主窗口
g_hCtrlWnd=CreateDialog(hIns,szCtrlPanelClass,NULL,NULL);
ShowWindow(g_hCtrlWnd,nCmdShow);
//主消息循环
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
LRESULT CALLBACK CtrlWndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)//主窗口处理函数
{
switch(message)
{
case WM_CREATE:
g_hCtrlWnd=hWnd;
return 0;
case WM_SHOWWINDOW:
return 0;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDC_BUTTON1:
TCHAR HexData={0};
TCHAR NewHexData={0};
int sLen=0;
int kLen=0;
sLen=SendMessage(GetDlgItem(hWnd,IDC_EDIT1),WM_GETTEXTLENGTH,0,0);
//sLen=SendDlgItemMessage(hWnd,IDC_EDIT1,WM_GETTEXTLENGTH,0,0);
GetDlgItemText(hWnd,IDC_EDIT1,(LPWSTR)HexData,sLen);
if (sLen>0)
{
for (int i=0;i<=sLen;i++)
{
if(HexData==' ')
kLen=kLen+1;
}
int j=0;
int k=0;
if(sLen>= kLen)
k=(sLen-kLen)/2;
while(j<=k)
{
for (int i=0;i<=sLen;i++)
{
if(i==0)
{
NewHexData='0';
NewHexData='x';
NewHexData=HexData;
j=j+2;
}
else
{
NewHexData=HexData;
}
if(HexData==' '|| HexData=='\n')
{
NewHexData=',';
NewHexData='0';
NewHexData='x';
j=j+2;
}
j++;
}
}
SetWindowText(GetDlgItem(hWnd,IDC_EDIT2),NewHexData);
}
else
{
SetWindowText(GetDlgItem(hWnd,IDC_EDIT2),TEXT("请输入HEX数据……"));
}
return 0;
}
break;
case WM_SIZE:
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
return DefWindowProc(hWnd,message,wParam,lParam);
}
return 0;
}http://www.wgbcw.com/data/attachment/album/201107/25/000635glx2xyy04wb2x205.jpg
页:
[1]