我在这里按照教程,将一个水平滚动条添加到列表控件.除了TextWidth()函数之外的所有东西都有用(VC++ 2012说它未定义)所以我发现了这个问题.但我不知道如何初始化hdc,所以我尝试了这个.但GetTextExtentPoint32保持返回零.
知道如何解决这个问题吗?
我的代码看起来像这样(编辑后):
SIZE Size;
HDC hdc=GetDC(hWnd);
iResult=GetTextExtentPoint32(hdc, szMessage, MESSAGE_SIZE, &Size);
Run Code Online (Sandbox Code Playgroud)
(szMessage包含用户输入)
所以我正在读这篇文章,并对Remus的回答感到惊讶.因为我认为这恰恰相反.
所以,至于我的问题.为什么使用diffie-hellman密钥交换的程序要使用共享密钥来加密/解密消息(通常)比SSL更不安全?
编辑:我知道SSL使用数字证书,但因为我的程序只与自身(客户端 - 服务器)进行通信,无论如何,对吧?
我创建了一个简单的win32应用程序,它打开一个带有编辑控件的对话框.搜索几个小时后,我找不到从该编辑控件获取用户输入的方法并将其存储在字符串中.我认为这里的代码做了我想要的(没有测试过),但我不理解它.所以解释或其他解决方案会很好.(我正在使用VC++ 2012)
其他解决方案我发现IS C++:S
好的,我做了一个单独的消息循环,并在那里插入代码.现在看起来像这样:
INT_PTR CALLBACK IP(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
UNREFERENCED_PARAMETER(lParam);
switch (message)
{
case WM_INITDIALOG:
return (INT_PTR)TRUE;
case WM_COMMAND:
if (LOWORD(wParam) == IDCANCEL)
{
EndDialog(hDlg, LOWORD(wParam));
return (INT_PTR)TRUE;
}
else if(LOWORD(wParam) == IDOK)
{
TCHAR szBuf[40];
GetDlgItemText(hDlg, IDC_EDIT1, szBuf, 39);
//Breakpoint here!
//szBuf="127.0.0.1" as intended :)
EndDialog(hDlg, LOWORD(wParam));
return (INT_PTR)TRUE;
}
break;
}
return (INT_PTR)FALSE;
}
Run Code Online (Sandbox Code Playgroud) 我有一个简单的对话框,其中包含一个列表框,编辑框和两个按钮,发送和清除,发送是默认设置.按下时,将从编辑框中读取字符串并将其添加到列表框中.清楚说明一切.当我第一次按下回车时一切正常,但是当我第二次按下回车时它没有响应/注册.如果单击该按钮,一切都按预期工作.
在将焦点更改回编辑框后,我尝试使用DM_SETDEFID,这没有做任何事情.
剥掉了不必要的代码,所以我希望没有什么遗漏.
INT_PTR CALLBACK CHAT(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_INITDIALOG:
return (INT_PTR)TRUE;
case WM_COMMAND:
if (LOWORD(wParam) == IDC_BUTTON1)
{
string strDisplay="You: "+strMessage;
TCHAR szDisplay[MESSAGE_SIZE];
strcpy_s(szDisplay, strDisplay.c_str());
SendDlgItemMessage(hDlg, IDC_LIST1, LB_ADDSTRING, NULL, (LPARAM)&szDisplay);
SetDlgItemText(hDlg, IDC_EDIT1, "");
}
SetFocus(GetDlgItem(hDlg, IDC_EDIT1));
}
else if(LOWORD(wParam) == IDC_BUTTON2)
{
SetDlgItemText(hDlg, IDC_EDIT1, "");
}
break;
case WM_CLOSE:
{
EndDialog(hDlg, LOWORD(wParam));
return (INT_PTR)TRUE;
}
}
return (INT_PTR)FALSE;
}
Run Code Online (Sandbox Code Playgroud)
在资源文件中:
IDD_CHAT_DIALOG DIALOGEX 0, 0, 309, 176
STYLE DS_SETFONT | DS_MODALFRAME …Run Code Online (Sandbox Code Playgroud)