|
20鱼币
本帖最后由 风之残月 于 2014-11-9 22:30 编辑
#include <Windows.h>
#include <iostream>
#include <tchar.h>
#include "resource.h"
INT_PTR CALLBACK DialogProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch(uMsg)
{
case WM_COMMAND:
{
switch(LOWORD(wParam))
{
case IDC_BUTTON1:
{
TCHAR szText[260] = {0};
GetDlgItemText(hwndDlg,IDC_EDIT1,szText,sizeof(szText));
//为什么上行将sizeof或成lstrlen就显示不出来?
//lstrlen也能返回全部输入的文字的空间大小,莫非文字是靠右写的,被截断了?
_stprintf(szText,TEXT("%s"),szText);
MessageBox(hwndDlg,szText,TEXT("提示"),MB_OK);
}
}
}
break;
case WM_SYSCOMMAND:
{
switch(wParam)
{
case SC_CLOSE:
EndDialog(hwndDlg,1);
break;
}
}
}
return FALSE;
}
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),NULL,DialogProc);
return 0;
}
|
最佳答案
查看完整内容
这种参数的意思是要传过去缓冲区的大小,确定大小足够再拷贝内容进缓冲区。
lstrlen返回的是空间已经存储的字符串长度,sizeof是指申请了多大空间,在这里应该用sizeof,如果用lstrlen会返回零,所以不行
|