帮忙看下这段代码
#include "stdafx.h"
#include "resource.h"
#include <stdio.h>
#include <Windows.h>
BOOL CALLBACK DlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, DlgProc);
return 0;
}
BOOL CALLBACK DlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
const char szDlgTitle[] = "RecvMessage";
static HWND s_hEditShowRecv;
switch (message)
{
case WM_INITDIALOG:
SetWindowTextA(hDlg, szDlgTitle);
s_hEditShowRecv = GetDlgItem(hDlg, IDC_EDIT_RECVMESSAGE);return TRUE;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDOK:
case IDCANCEL:
EndDialog(hDlg, LOWORD(wParam));
return TRUE;
}
break;
case WM_COPYDATA:
{
COPYDATASTRUCT *pCopyData = (COPYDATASTRUCT*)lParam;
char szBuffer[300];
memset(szBuffer, 0, sizeof(szBuffer));
sprintf(szBuffer, "dwData:%d cbData:%d\r\nlpData:0x%08x = %s\r\n\r\n",
pCopyData->dwData, pCopyData->cbData,
(PVOID)pCopyData->lpData, (char*)pCopyData->lpData);
//在编辑框中追加数据
SendMessage(s_hEditShowRecv, EM_SETSEL, (WPARAM)-1, (LPARAM)-1); // (0, -1)表示全选, (-1,任意)表示全不选
SendMessage(s_hEditShowRecv, EM_REPLACESEL, FALSE, (LPARAM)szBuffer);
SendMessage(s_hEditShowRecv, EM_SCROLLCARET, 0, 0);
}
return TRUE;
}
return FALSE;
}
编译的时候出现如下错误: error C2065: “IDC_EDIT_RECVMESSAGE”: 未声明的标识符
能否帮忙解释下getDigItem函数两个参数分别代表什么,这个函数的功能又是什么。
还有这个错误该怎么消除,我猜测是有个资源没有添加,但不知道怎么弄,谢谢各位了!
[解决办法]
你需要在对话框上方一个Edit 并将其ID指定为IDC_EDIT_RECVMESSAGE
[解决办法]
打开资源,在对话框上面再拖一个Edit控件上去,将这个控件的ID设置为IDC_EDIT_RECVMESSAGE
[解决办法]
你的对话框资源编辑器上有这个ID标示的控件吗?