首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

WM_INITDIALOG解决思路

2014-07-24 
WM_INITDIALOG#include #include "resource.h"#include#include #include

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:
里。

热点排行