函数名: GetDlgItemText 函数功能:得到控件中的文本 函数原型: UINT WINAPI GetDlgItemText( _In_ HWND hDlg, _In_ int nIDDlgItem, _Out_ LPTSTR lpString, _In_ int nMaxCount ); 参数: 第一个参数:程序的句柄 第二个参数:控件的ID 第三个参数:字符串 第四个参数:字符串的大小 参考文章:GetDlgItemTex函数 函数名:SetDlgItemTex 函数功能:向控件中写入文本 函数参数: BOOL WINAPI SetDlgItemText( _In_ HWND hDlg, _In_ int nIDDlgItem, _In_ LPCTSTR lpString ) 参数: 第一个参数:程序的句柄 第二个参数:控件的ID 第三参数:字符串 参考文章:SetDlgItemText函数 函数名:SendMessage 函数功能:发送Windows信息 函数原型: LRESULT WINAPI SendMessage( _In_ HWND hWnd, _In_ UINT Msg, _In_ WPARAM wParam, _In_ LPARAM lParam ); 第一个参数:窗口的句柄 第二个参数:发送的Windows信息 第三个参数:指定附加的消息特定信息 第四个参数:指定附加的消息特定信息。 参考文章:SendMessage函数 函数名:LoadIcon 函数功能:加载图标 函数原型: HICON WINAPI LoadIcon( _In_opt_ HINSTANCE hInstance, _In_ LPCTSTR lpIconName ); 第一个参数:程序的实例句柄 第二个参数:图标的ID 参考文章:LoadIcon函数 函数名:ZeroMemory 函数功能:清零 函数原型: void ZeroMemory( [in] PVOID Destination, [in] SIZE_T Length ); 第一个参数:数据的地址 第一个参数:数据的大小 参考文章:ZeroMemory函数 学完函数的使用后现在开始写代码: FileView------->工作区程序员计算器------>程序员计算器 file------->Source file----->MainDlg.cpp ![](https://img-blog.csdn.net/20140112185114406?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDEwNTk3MA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center) ![](https://img-blog.csdn.net/20140112185135796?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDEwNTk3MA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center) ![](https://img-blog.csdn.net/20140112185158109?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDEwNTk3MA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center) ![](https://img-blog.csdn.net/20140112185220171?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDEwNTk3MA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center) ![](https://img-blog.csdn.net/20140112185245437?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDEwNTk3MA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center) ![](https://img-blog.csdn.net/20140112185306671?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDEwNTk3MA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center) 程序员计算器的全部代码 在写代码之前先学习几个算法 1清零算法 memset(temp,0,sizeof(temp));
SetDlgItemText(hwnd,IDC_EDIT1,"0"); 2退格算法 TCHAR temp1[256];
GetDlgItemText(hwnd,IDC_EDIT1,temp1,sizeof(temp1));/*获得编辑框中的字符串*/
temp1[strlen(temp1) - 1] = temp1[strlen(temp1)];/*将'\0'向前移一位*/
strcpy(temp,temp1);
SetDlgItemText(hwnd,IDC_EDIT1,temp);/*输出结果*/ MainDlg.cpp中的代码 #include "stdafx.h"
#include <windows.h>
#include <windowsx.h>
#include "resource.h"
#include "MainDlg.h"
TCHAR str1[256];/*存取第一个数字*/
TCHAR str2[256];/*存取第二个数字*/
TCHAR str3[256];/*存取运算结果*/
TCHAR temp[256]; /*存取输入的数字*/
char op;/*用于开关语句中选择运算符号*/
float f1,f2,f3;
TCHAR binary[256];/*用于进制转换*/
int i;/*用于进制转换*/
int p,q;/*用于按位取反*/
BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);
HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);
HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);
}
return FALSE;
}
BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
ZeroMemory(str1,sizeof(str1));/*清零*/
ZeroMemory(str2,sizeof(str2));/*清零*/
SetDlgItemText(hwnd,IDC_EDIT1,"0");/*文本框中显示0*/
/*在窗口的标题栏上显示图标*/
SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ICON1)));
return TRUE;
}
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
switch(id)
{
case IDC_1:/*输入数字1*/
{
strcat(temp,"1");
SetDlgItemText(hwnd,IDC_EDIT1,temp);
}
break;
case IDC_2:/*输入数字2*/
{
strcat(temp,"2");
SetDlgItemText(hwnd,IDC_EDIT1,temp);
}
break;
case IDC_3:/*输入数字3*/
{
strcat(temp,"3");
SetDlgItemText(hwnd,IDC_EDIT1,temp);
}
break;
case IDC_4:/*输入数字4*/
{
strcat(temp,"4");
SetDlgItemText(hwnd,IDC_EDIT1,temp);
}
break;
case IDC_5:/*输入数字5*/
{
strcat(temp,"5");
SetDlgItemText(hwnd,IDC_EDIT1,temp);
}
break;
case IDC_6:/*输入数字6*/
{
strcat(temp,"6");
SetDlgItemText(hwnd,IDC_EDIT1,temp);
}
break;
case IDC_7:/*输入数字7*/
{
strcat(temp,"7");
SetDlgItemText(hwnd,IDC_EDIT1,temp);
}
break;
case IDC_8:/*输入数字8*/
{
strcat(temp,"8");
SetDlgItemText(hwnd,IDC_EDIT1,temp);
}
break;
case IDC_9:/*输入数字9*/
{
strcat(temp,"9");
SetDlgItemText(hwnd,IDC_EDIT1,temp);
}
break;
case IDC_0:/*输入数字0*/
{
strcat(temp,"0");
SetDlgItemText(hwnd,IDC_EDIT1,temp);
}
break;
case IDC_POINT:/*输入小数点*/
{
strcat(temp,".");
SetDlgItemText(hwnd,IDC_EDIT1,temp);
}
break;
case IDC_ADD:/*加*/
{
op = '+';
strcpy(str1,temp);
memset(temp,0,sizeof(temp));
}
break;
case IDC_SUB:/*减*/
{
op = '-';
strcpy(str1,temp);
memset(temp,0,sizeof(temp));
}
break;
case IDC_MUL:/*乘*/
{
op = '*';
strcpy(str1,temp);
memset(temp,0,sizeof(temp));
}
break;
case IDC_DIV:/*除*/
{
op = '/';
strcpy(str1,temp);
memset(temp,0,sizeof(temp));
}
break;
case IDC_CLEAR:/*清零*/
{
memset(temp,0,sizeof(temp));
SetDlgItemText(hwnd,IDC_EDIT1,"0");
}
break;
case IDC_BACK:/*退格*/
{
TCHAR temp1[256];
GetDlgItemText(hwnd,IDC_EDIT1,temp1,sizeof(temp1));/*获得编辑框中的字符串*/
temp1[strlen(temp1) - 1] = temp1[strlen(temp1)];/*将'\0'向前移一位*/
strcpy(temp,temp1);
SetDlgItemText(hwnd,IDC_EDIT1,temp);/*输出结果*/
}
break;
case IDC_TWO:/*转换为二进制*/
{
i = atoi(temp);
itoa(i,binary,2);
SetDlgItemText(hwnd,IDC_EDIT1,binary);
}
break;
case IDC_EIGHT:/*转换为八进制*/
{
i = atoi(temp);
itoa(i,binary,8);
SetDlgItemText(hwnd,IDC_EDIT1,binary);
}
break;
case IDC_SIXTEEN:/*转换为十六进制*/
{
i = atoi(temp);
itoa(i,binary,16);
SetDlgItemText(hwnd,IDC_EDIT1,binary);
}
break;
case IDC_AND:/*按位与*/
{
op = '&';
strcpy(str1,temp);
memset(temp,0,sizeof(temp));
}
break;
case IDC_VERSA:/*按位取反*/
{
p = atoi(temp);
memset(temp,0,sizeof(temp));
q = ~p;
wsprintf(str3,"%d",q);
SetDlgItemText(hwnd,IDC_EDIT1,str3);
}
break;
case IDC_OR:/*按位或*/
{
op = '|';
strcpy(str1,temp);
memset(temp,0,sizeof(temp));
}
break;
case IDC_UNNO:/*按位异或*/
{
op = '^';
strcpy(str1,temp);
memset(temp,0,sizeof(temp));
}
break;
case IDC_LEFT:/*按位左移*/
{
op = '<';
strcpy(str1,temp);
memset(temp,0,sizeof(temp));
}
break;
case IDC_RIGHT:/*按位右移*/
{
op = '>';
strcpy(str1,temp);
memset(temp,0,sizeof(temp));
}
break;
case IDC_OK:/*等于*/
{
f1 = atof(str1);
strcpy(str2,temp);
f2 = atof(str2);
switch(op)
{
case '+':
{
f3 = f1 + f2;
}
break;
case '-':
{
f3 = f1 - f2;
}
break;
case '*':
{
f3 = f1 * f2;
}
break;
case '/':
{
f3 = f1 / f2;
}
break;
case '&':
{
f3 = (int)f1 & (int)f2;
}
break;
case '|':
{
f3 = (int)f1 | (int)f2;
}
break;
case '^':
{
f3 = (int)f1 ^ (int)f2;
}
break;
case '<':
{
f3 = (int)f1 << (int)f2;
}
break;
case '>':
{
f3 = (int)f1 >> (int)f2;
}
break;
}
sprintf(str3,"%g",f3);
SetDlgItemText(hwnd,IDC_EDIT1,str3);
}
break;
default:
break;
}
}
void Main_OnClose(HWND hwnd)
{
EndDialog(hwnd, 0);
}
程序员计算器下载 | |