读书人

WM_INITDIALOG解决思路

发布时间: 2014-07-24 16:19:23 作者: rapoo

WM_INITDIALOG
#include <Windows.h>
#include "resource.h"
#include<tchar.h>
#include <stdio.h>
#include <stdlib.h>
#include <TCHAR.H>
#include <Windowsx.h>

//-----------------------
LRESULT CALLBACK DlgProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE PrehInstance,PSTR szCmdLine,
int iCmdShow)
{
DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),NULL,(DLGPROC)DlgProc);
return 0;
}
LRESULT CALLBACK DlgProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
{

HWND hComboCity=GetDlgItem(hWnd,IDC_COMBOCITY);
switch( msg)
{

case WM_INITDIALOG:

ComboBox_AddString(hComboCity,TEXT("FuZhou"));
ComboBox_AddString(hComboCity,TEXT("BeiJing"));
ComboBox_AddString(hComboCity,TEXT("ShangHai"));

return TRUE;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK:
int iLine;
TCHAR cRow[256];
iLine=ComboBox_GetCount(hComboCity);
_itow_s(iLine,cRow,10);
MessageBox(hWnd,cRow,NULL,MB_OK);
break;
case IDCANCEL:
EndDialog(hWnd, IDCANCEL);
break;
case IDC_BUTTONDEL:
int iCurSel;
iCurSel=ComboBox_GetCurSel(hComboCity);
ComboBox_DeleteString(hComboCity,iCurSel);
break;

}
break;
default:
return FALSE;

}
return TRUE;

}
运行正常
#include <Windows.h>
#include "resource.h"
#include<tchar.h>
#include <stdio.h>
#include <stdlib.h>
#include <TCHAR.H>
#include <Windowsx.h>

//-----------------------
LRESULT CALLBACK DlgProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE PrehInstance,PSTR szCmdLine,
int iCmdShow)
{
DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),NULL,(DLGPROC)DlgProc);
return 0;
}
LRESULT CALLBACK DlgProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
{


switch( msg)
{

HWND hComboCity=GetDlgItem(hWnd,IDC_COMBOCITY
case WM_INITDIALOG:

ComboBox_AddString(hComboCity,TEXT("FuZhou"));
ComboBox_AddString(hComboCity,TEXT("BeiJing"));
ComboBox_AddString(hComboCity,TEXT("ShangHai"));

return TRUE;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK:
int iLine;
TCHAR cRow[256];
iLine=ComboBox_GetCount(hComboCity);
_itow_s(iLine,cRow,10);
MessageBox(hWnd,cRow,NULL,MB_OK);
break;
case IDCANCEL:
EndDialog(hWnd, IDCANCEL);
break;
case IDC_BUTTONDEL:
int iCurSel;
iCurSel=ComboBox_GetCurSel(hComboCity);
ComboBox_DeleteString(hComboCity,iCurSel);
break;

}
break;
default:
return FALSE;

}
return TRUE;

}
通不过
[解决办法]
HWND hComboCity=GetDlgItem(hWnd,IDC_COMBOCITY);

放到switch上面去。基础不够扎实!
[解决办法]
switch( msg)
{

HWND hComboCity=GetDlgItem(hWnd,IDC_COMBOCITY
case WM_INITDIALOG:
// switch 后接case ,不能插入 别的 语句。
HWND hComboCity=GetDlgItem(hWnd,IDC_COMBOCITY);
可以放 case WM_INITDIALOG:
里。

读书人网 >VC/MFC

热点推荐