2 baidu 30118209 baidu_30118209 于 2015.07.25 22:30 提问

问一个win32application中,我创建了对话框,

在对话框中我拖进去编辑框控件,问题是如何使用编辑框,得到输进去的数字图片说明求求各位高手了,最好有具体代码,感激不尽!!!

5个回答

zuishikonghuan
zuishikonghuan   2015.07.26 08:16
已采纳

用GetDlgItem获取编辑框窗口句柄,用GetWindowText获取编辑框内容,用atoi等函数将字符串转换成整数
或者用 GetDlgItemInt

zuishikonghuan
zuishikonghuan 回复baidu_30118209: 你想往哪儿画啊,窗口的话直接在wndproc的WM_PAINT里画,记得要用BeginPaint系列的函数,别再用GetDC了,如果是控件需要先子类化
2 年多之前 回复
baidu_30118209
baidu_30118209 回复zuishikonghuan: 谢谢,我是要在主窗口里画图,也就是wndproc里面设置WM_PAINT,检查没错误,就是画不出图,好烦啊
2 年多之前 回复
zuishikonghuan
zuishikonghuan 回复baidu_30118209: 绘图函数应该在控件的WM_PAINT消息里绘制,不然会被系统重画掉,你应该获取数据后把数据存在全局变量中,然后立即重画组件,在控件的WM_PAINT消息里根据预先存的全局变量绘图
2 年多之前 回复
baidu_30118209
baidu_30118209 能不能看一下四楼的代码啊?正在学,不知道哪里有问题。
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2015.07.25 23:05

直接用GetDlgItemInt就可以了。不需要什么“G e t DlgItem获取到控件,然后GetWindowText获取控件文本”
例子代码
http://blog.sina.com.cn/s/blog_69e905cd0100kiv1.html

baidu_30118209
baidu_30118209 回复caozhy: 哥,程序调不出来怎么破
2 年多之前 回复
caozhy
caozhy 回复baidu_30118209: 告诉你不用getwindowtext,那样根本获取不到文本。你非要分两步,第一步也是用sendmessage wm_gettext获取文本。
2 年多之前 回复
baidu_30118209
baidu_30118209 能不能看一下四楼的代码啊?正在学,不知道哪里有问题。
2 年多之前 回复
oyljerry
oyljerry   Ds   Rxr 2015.07.25 22:45

G e t DlgItem获取到控件,然后GetWindowText获取控件文本

oyljerry
oyljerry 回复caozhy: 谁说获取不到的,你不看API文档的?而且楼主代码也获取到了
2 年多之前 回复
caozhy
caozhy 不要误导lz,文本框的文本用getwindowtext是获取不到的。这个函数取的是窗口标题。你害的人家多费多少事。
2 年多之前 回复
baidu_30118209
baidu_30118209 回复91program: O(∩_∩)O谢谢指导,正在看书,有点急
2 年多之前 回复
91program
91program 回复baidu_30118209: 第一次做,这是借口。如果想自己做,就找一本基础的书看看,这些都是最最基础的。
2 年多之前 回复
baidu_30118209
baidu_30118209 谢谢了,请问一下能不能给一个具体的代码啊,我第一次做这个,还不太清楚
2 年多之前 回复
baidu_30118209
baidu_30118209   2015.07.26 22:38

BOOL CALLBACK AboutDlgProc (HWND hDlg, UINT message,
WPARAM wParam, LPARAM lParam)
{

char chr1[10], chr2[10], chr3[10],chr4[10];

int number1, number2, number3,number4;
switch (message)
{
case WM_INITDIALOG :
return TRUE ;

 case WM_COMMAND :
      switch (LOWORD (wParam))
      {

      case IDOK :

GetDlgItem( hDlg,IDC_EDIT1);
GetWindowText(IDC_EDIT1,chr1,10);
GetDlgItem( hDlg,IDC_EDIT2);
GetWindowText(IDC_EDIT2,chr2,10);
GetDlgItem( hDlg,IDC_EDIT3);
GetWindowText(IDC_EDIT3,chr3,10);
GetDlgItem( hDlg,IDC_EDIT4);
GetWindowText(IDC_EDIT4,chr4,10);
number1=atoi(chr1);
number2=atoi(chr2);
number3=atoi(chr3);
number4=atoi(chr4);
MoveToEx (hDlg, number1, number2, NULL) ;
LineTo (hDlg, number3,number4) ;
我想画个线,调试没问题,不知问题出哪里了

oyljerry
oyljerry   Ds   Rxr 2015.07.26 22:44

Move,Line等要放到OnPaint中画图,不然就会刷新掉

baidu_30118209
baidu_30118209 谢谢,在wndproc设置了wm-paint,但是画不出来,现在还不知道什么情况
2 年多之前 回复
baidu_30118209
baidu_30118209 O(∩_∩)O谢谢,我再试试
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片