刚写了一个计算器的小程序,出了点有关问题,求老师指教下

刚写了一个计算器的小程序,出了点问题,求老师指教下
#include "stdafx.h"
#include "stdlib.h"
#include "stdio.h"
#include "resource.h"
int num_1,num_2,num_3,flag=0;
BOOL CALLBACK DialogPro(HWND hwnd,UINT Message,WPARAM wParam,LPARAM lParam){

char string_1[256], string_2[256],string_3[256],string_4[256],string_5[256];
char pro_1[10];
char temp;
switch(Message){
case WM_CLOSE:
DestroyWindow(hwnd);
break;

case WM_COMMAND:

if(wParam>=1001&&wParam<=1010){
if(flag=1){
SetDlgItemText(hwnd,IDC_EDIT1,"");
}
GetDlgItemText(hwnd,wParam,string_1,sizeof(string_1));
GetDlgItemText(hwnd,IDC_EDIT1,string_2,sizeof(string_2));
sprintf(string_2,"%s%s",string_2,string_1);
SetDlgItemText(hwnd,IDC_EDIT1,string_2);
}

if(wParam<=1014&&wParam>=1011)
{
GetDlgItemText(hwnd,IDC_EDIT1,string_3,sizeof(string_3));
num_1=atoi(string_3);

GetDlgItemText(hwnd,wParam,pro_1,sizeof(pro_1));
temp=pro_1[0];
SetDlgItemText(hwnd,IDC_EDIT1,"");
flag=1;
}

switch(wParam){
case IDOK:
GetDlgItemText(hwnd,IDC_EDIT1,string_4,sizeof(string_4));
num_2=atoi(string_4);
switch(temp){
case '+':
num_3=num_2+num_1;

break;
case '-':
num_3=num_2-num_1;

break;
case '*':
num_3=num_2*num_1;

break;
case '/':
num_3=num_2/num_1;

break;
}
sprintf(string_5,"%d",num_3);
SetDlgItemText(hwnd,IDC_EDIT1,string_5);
break;
}
break;
}
return 0;
}
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
DialogBox(hInstance,MAKEINTRESOURCE(Dialogex),NULL,DialogPro);

return 0;
}



这是我写的代码,一点确定IDC_EDIT1就会得0,不能得出结果,哪里出错了啊
GUI  C++ 

------解决方案--------------------
那就是你没有收到消息了,没有获取到会话框你里面的数据!你断点,看能不能跑到你获取数据的地方
------解决方案--------------------
下断点调试撒, 这是程序需要锻炼的能力之一