主题:用API作的一个练习,程序是能运行了,可是没能显示出我想要的结果
程序是可以运行,可是没能显示出我想要的结果,显示效果如图所示。代码中有些注释,是我反复调试仍找不到答案留下的痕迹。
#include <windows.h>
#include "resource.h"
//#include <stdlib.h>
#include <tchar.h>
BOOL CALLBACK DlgProc(HWND hDialog,UINT message,WPARAM wParam,LPARAM lParam);
//TCHAR szAppName[]=TEXT("阿锋API编程练习");
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int iShowCmd)
{
MSG message;
HWND hDialog;
// hDialog=CreateDialog(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),NULL,DlgProc);
DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),NULL,DlgProc);
// ShowWindow(hDialog,iShowCmd);
// UpdateWindow(hDialog);
while(GetMessage(&message,NULL,0,0))
{
TranslateMessage(&message);
DispatchMessage(&message);
}
return message.wParam;
}
BOOL CALLBACK DlgProc(HWND hDialog,UINT message,WPARAM wParam,LPARAM lParam)
{
int iFeetCount,i,j;
TCHAR szBuffer[256];
HWND hEdit;
HDC hEdc;
//int y=20;
switch(message)
{
case WM_INITDIALOG:
wsprintf(szBuffer,TEXT("The chicken: The rabby\n\r"));
SetDlgItemText(hDialog,IDC_EDIT2,szBuffer);
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK:
hEdit=GetDlgItem(hDialog,IDC_EDIT2);
hEdc=GetDC(hEdit);
GetDlgItemText(hDialog,IDC_EDIT1,szBuffer,20);
iFeetCount=_ttoi(szBuffer);
// ScrollWindow(hEdit,0,-20,NULL,NULL);
for (i=0;i<=(iFeetCount/2);i++)
{
j=(iFeetCount-2*i)/4;
if (2*i+4*j==iFeetCount)
{ //将结果输出到窗口中,可是我确没看到任何东西
wsprintf(szBuffer,TEXT(" %2d \t %2d"),i,j);
SetDlgItemText(hDialog,IDC_EDIT2,szBuffer);
//TextOut(hEdc,0,y=+20,szBuffer,28);
ScrollWindow(hEdit,0,-20,NULL,NULL);
}
}
break;
case IDCANCEL:
EndDialog(hDialog,0);
PostQuitMessage(0);
break;
}
break;
case WM_DESTROY:
EndDialog(hDialog,0);
PostQuitMessage(0);
break;
/* default:
DefDlgProc(hDialog,message,wParam,lParam); */
}
return FALSE;
}
RC资源文件
IDD_DIALOG1 DIALOGEX 0, 0, 316, 183
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "阿锋API编程练习"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "确定",IDOK,162,153,66,23
PUSHBUTTON "取消",IDCANCEL,244,153,58,23
EDITTEXT IDC_EDIT1,27,152,115,24,ES_AUTOHSCROLL | ES_NUMBER
EDITTEXT IDC_EDIT2,7,7,302,132,ES_MULTILINE | ES_AUTOHSCROLL,WS_EX_LEFTSCROLLBAR
END
resource.h文件
#define IDD_DIALOG1 101
#define IDC_EDIT1 1001
#define IDC_EDIT2 1002
#define IDC_SCROLLBAR1 1003
#include <windows.h>
#include "resource.h"
//#include <stdlib.h>
#include <tchar.h>
BOOL CALLBACK DlgProc(HWND hDialog,UINT message,WPARAM wParam,LPARAM lParam);
//TCHAR szAppName[]=TEXT("阿锋API编程练习");
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int iShowCmd)
{
MSG message;
HWND hDialog;
// hDialog=CreateDialog(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),NULL,DlgProc);
DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),NULL,DlgProc);
// ShowWindow(hDialog,iShowCmd);
// UpdateWindow(hDialog);
while(GetMessage(&message,NULL,0,0))
{
TranslateMessage(&message);
DispatchMessage(&message);
}
return message.wParam;
}
BOOL CALLBACK DlgProc(HWND hDialog,UINT message,WPARAM wParam,LPARAM lParam)
{
int iFeetCount,i,j;
TCHAR szBuffer[256];
HWND hEdit;
HDC hEdc;
//int y=20;
switch(message)
{
case WM_INITDIALOG:
wsprintf(szBuffer,TEXT("The chicken: The rabby\n\r"));
SetDlgItemText(hDialog,IDC_EDIT2,szBuffer);
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK:
hEdit=GetDlgItem(hDialog,IDC_EDIT2);
hEdc=GetDC(hEdit);
GetDlgItemText(hDialog,IDC_EDIT1,szBuffer,20);
iFeetCount=_ttoi(szBuffer);
// ScrollWindow(hEdit,0,-20,NULL,NULL);
for (i=0;i<=(iFeetCount/2);i++)
{
j=(iFeetCount-2*i)/4;
if (2*i+4*j==iFeetCount)
{ //将结果输出到窗口中,可是我确没看到任何东西
wsprintf(szBuffer,TEXT(" %2d \t %2d"),i,j);
SetDlgItemText(hDialog,IDC_EDIT2,szBuffer);
//TextOut(hEdc,0,y=+20,szBuffer,28);
ScrollWindow(hEdit,0,-20,NULL,NULL);
}
}
break;
case IDCANCEL:
EndDialog(hDialog,0);
PostQuitMessage(0);
break;
}
break;
case WM_DESTROY:
EndDialog(hDialog,0);
PostQuitMessage(0);
break;
/* default:
DefDlgProc(hDialog,message,wParam,lParam); */
}
return FALSE;
}
RC资源文件
IDD_DIALOG1 DIALOGEX 0, 0, 316, 183
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "阿锋API编程练习"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "确定",IDOK,162,153,66,23
PUSHBUTTON "取消",IDCANCEL,244,153,58,23
EDITTEXT IDC_EDIT1,27,152,115,24,ES_AUTOHSCROLL | ES_NUMBER
EDITTEXT IDC_EDIT2,7,7,302,132,ES_MULTILINE | ES_AUTOHSCROLL,WS_EX_LEFTSCROLLBAR
END
resource.h文件
#define IDD_DIALOG1 101
#define IDC_EDIT1 1001
#define IDC_EDIT2 1002
#define IDC_SCROLLBAR1 1003