C++程式內寫的是SetDlgItemText,編譯結果卻提示”SetDlgItemTextA“:函式不接受2個引數,請教一下這個怎么修改?
case DBT_DEVICEREMOVECOMPLETE://DBT_DEVICEREMOVECOMPLETE,設備卸載或者拔出
{
if (lpdb->dbch_devicetype == DBT_DEVTYP_VOLUME)//邏輯卷
{
PDEV_BROADCAST_VOLUME lpdbv = (PDEV_BROADCAST_VOLUME)lpdb;
switch (lpdbv->dbcv_flags)
{
case 0: //U盤
{
std::string sUnplugMsg("檢測到U盤: [");
sUnplugMsg += FirstDriveFromMask(lpdbv->dbcv_unitmask);
sUnplugMsg += "] 拔出!";
SetDlgItemText(IDC_EDIT1, sUnplugMsg.c_str());
}
break;
case DBTF_MEDIA: //光碟
std::string sCDMsg("檢測到光碟:[");
sCDMsg += FirstDriveFromMask(lpdbv->dbcv_unitmask);
sCDMsg += "] 插入!";
SetDlgItemText(IDC_EDIT1,sCDMsg.c_str());
break;
}
}
}
uj5u.com熱心網友回復:
因為你呼叫的是SetDlgItemText是SDK API,不是MFC CWnd::SetDlgItemText, SDK API多了一個HWND視窗句柄引數,而MFC的CWnd類沒有第一個引數。uj5u.com熱心網友回復:
方法1:將函式第1個引數去掉。方法2:函式前加::
uj5u.com熱心網友回復:
方法1函式要用控制元件類指標訪問,指標用GetDlgItem()函式獲取uj5u.com熱心網友回復:
句柄與控制ID不是一回事uj5u.com熱心網友回復:
一個是全域函式,一個是CWND類的內部函式uj5u.com熱心網友回復:
1#,3#正解。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/37038.html
標籤:界面
上一篇:求助大神大佬,看一下為什么會這樣
下一篇:有沒有最新的win10密鑰
