void MainWndProc_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
OPENFILENAME ofn;
char strFile[MAX_PATH];
DWORD dLenR,dLenW;
HANDLE hRead,hWrite;
switch(id)
{
case IDM_OPEN:
memset(&ofn,0,sizeof(OPENFILENAME));
memset(strFile,0,MAX_PATH);
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hwnd;
ofn.lpstrFilter = "文本(*.txt)\0*.txt\0";
ofn.lpstrFile = strFile;
ofn.nMaxFile = MAX_PATH;
ofn.Flags = OFN_FILEMUSTEXIST;
if(GetOpenFileName(&ofn))
{
hRead = CreateFile(strFile,GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(hRead == INVALID_HANDLE_VALUE)
{
MessageBox(hwnd,"打开文件错误","错误",MB_OK);
return;
}
if(ReadFile(hRead,cFileBuf,100000,&dLenR,NULL))
{
iFileLen = dLenR;
p = cFileBuf;
}
else
iFileLen = 0;
CloseHandle(hRead);
}
break;
case IDM_EXIT:
PostMessage(hwnd,WM_CLOSE,0,0);
break;
}
}
LRESULT CALLBACK MainWndProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
unsigned char *p1,*pBuf;
int i = 0;
HGLOBAL hText;
switch (msg)
{
case WM_COMMAND:
HANDLE_WM_COMMAND(hwnd,wParam,lParam,MainWndProc_OnCommand);
break;
case WM_HOTKEY:
if(OpenClipboard(hwnd))
{
EmptyClipboard();
hText = GlobalAlloc (GPTR,256);
pBuf = GlobalLock(hText);
while(iFileLen > 0)
{
if(*p != 13 && *p != 10)
break;
p++;
iFileLen--;
}
p1 = pBuf;
while(iFileLen > 0)
{
if(*p == 13 || *p == 10 || i++ > 250)
break;
*p1++ = *p++;
iFileLen--;
}
*p1 = 0;
GlobalUnlock(hText);
SetClipboardData(CF_TEXT,hText);
CloseClipboard();
keybd_event(VK_LCONTROL,0,0,0);
keybd_event(VK_A,0,0,0);
keybd_event(VK_A,0,KEYEVENTF_KEYUP,0);
keybd_event(VK_V,0,0,0);
keybd_event(VK_V,0,KEYEVENTF_KEYUP,0);
keybd_event(VK_LCONTROL,0,KEYEVENTF_KEYUP,0);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,msg,wParam,lParam);
}
return 0;
}