当前位置: 代码迷 >> WinCE >> GetDlgItem返回NULL,该如何处理
  详细解决方案

GetDlgItem返回NULL,该如何处理

热度:76   发布时间:2016-04-28 12:06:57.0
GetDlgItem返回NULL
int WINAPI WinMain( HINSTANCE hInstance,
   HINSTANCE hPrevInstance,
   LPWSTR   lpCmdLine,
   int       nCmdShow)
{
InitCommonControls();
ImmDisableIME(0);
DialogBox(hInstance,MAKEINTRESOURCE(IDD_WIFIDIALOG),NULL,(DLGPROC)WifiDlgProc);
return 1;
}

LRESULT CALLBACK WifiDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
int myid;
DWORD dwStyle;
CListCtrl *m_WifiList;
/* if (myedit == NULL)
{
MessageBox(hDlg,TEXT("list error"),NULL,MB_OK);
}*/
switch(message)
{
case WM_INITDIALOG:
{
m_WifiList = (CListCtrl*)GetDlgItem(hDlg,IDC_LIST1);
(CListCtrl*)GetDlgItem(hDlg,IDC_LIST1)->EnableWindow(TRUE);
int sx, sy;
sx = GetSystemMetrics(SM_CXSCREEN);
sy = GetSystemMetrics(SM_CYSCREEN);
SetWindowPos(hDlg, 0, 0, 0, sx, sy-23, SWP_NOZORDER);

dwStyle = m_WifiList)->GetExtendedStyle();
dwStyle |= LVS_EX_CHECKBOXES;
dwStyle |= LVS_EX_ONECLICKACTIVATE;
dwStyle |= LVS_EX_SUBITEMIMAGES;
m_WifiList->SetExtendedStyle(dwStyle);
return TRUE;
}
case WM_COMMAND:
{
myid = LOWORD(wParam);
switch(myid)
{
case IDOK:
EndDialog(hDlg,IDOK);
return FALSE;
case IDCANCEL:
EndDialog(hDlg,IDCANCEL);
return FALSE;
}
}
default:
return FALSE;
}
}
------解决方案--------------------
hDlg是否为空?IDC_LIST1是否在hDlg窗体上?
------解决方案--------------------
可以参考下这个:http://blog.csdn.net/rabbit729/article/details/4268252
  相关解决方案