SDK中如何提取EDIT控件中的内容?

zxm927 2003-10-15 04:04:38
对话框中有个EDIT BOX,MFC中可以关联变量,SDK中如何提取EDIT控件中的内容?
我知道是用GetWindowsText函数,可是我第一个参数不知道怎么设。不知道各位大侠能不能说详细点。或者给我一个事例,对这方面的东西有个比较详细的介绍,或者给介绍几个网站,或者介绍点书。
我的EMAIL:zxm927@163.com
不胜感激
...全文
71 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
arvid_gs 2003-10-16
  • 打赏
  • 举报
回复
TCHAR szText[100];
HWND hEdit = GetDlgItem(hDlg, IDC_EDIT);
GetWindowText(hEdit, szText, 100);解决你的第一个问题
你的第二个问题是你对
about的窗口函数该了吗?
不知道能不能把你的代码拿来看看!
zxm927 2003-10-16
  • 打赏
  • 举报
回复
ionlic 2003-10-16
  • 打赏
  • 举报
回复
hEdit=GetDlgItem(hDlg,IDC_EDIT_SRC);
GetWindowText(hEdit,szText,MAX_LENGTH);
这样应该没问题。

这个问题没遇到过……
cjg325 2003-10-16
  • 打赏
  • 举报
回复
::GetWindowText(hwnd,str,sizeof(str));
zxm927 2003-10-16
  • 打赏
  • 举报
回复
里面所有BOX弹出后它不能被选中(一直是灰的),能拖来拖去,但是不能按确定按钮;
所有的CASE语句里都不能这么做,包括AboutBox回调函数中的IDOK.
为什么啊?
zxm927 2003-10-16
  • 打赏
  • 举报
回复
// MyBackuper.cpp : Defines the entry point for the application.
//功能:将源路径下的文件到目的路径(不能递归保存,也就是说只保存源路径下第一层的文件)
// 保存时只覆盖有改动的文件

#include "stdafx.h"
#include "resource.h"
#include <WINUSER.H>

//回调函数声明
LRESULT CALLBACK DlgMain(HWND,UINT,WPARAM,LPARAM); //关于主对话框
LRESULT CALLBACK DlgAbout(HWND,UINT,WPARAM,LPARAM); //关于About对话框

//普通函数声明
void SaveFiles(LPTSTR lpDstDir,const LPTSTR lpSrcDir); //保存目录下的文件(不能递归)

//全局变量定义
HINSTANCE hInst; //全局实例句柄
const int MAX_LENGTH=256; //文件目录长度的最大值

int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
DialogBox(hInstance,MAKEINTRESOURCE(IDD_DLG_MAIN),NULL,(DLGPROC)DlgMain);
return TRUE;
}

//回调函数定义
LRESULT CALLBACK DlgMain(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam)
{//主对话框函数定义
TCHAR srcDir[MAX_LENGTH]; //指向源文件夹
TCHAR dstDir[MAX_LENGTH]; //指向目的文件夹

int wmId = LOWORD(wParam); //保存要执行的命令(由wParam传入)
int wmEvent = HIWORD(wParam); //命令类型

HWND hEditSrc=GetDlgItem(hDlg,IDC_EDIT_SRC); //得到两个EDIT BOX的句柄
HWND hEditDst=GetDlgItem(hDlg,IDC_EDIT_DST);

//srcDir=; //路径初始化
//dstDir=;

switch(message)
{
case WM_COMMAND:
wmId = LOWORD(wParam); //得到要执行的命令
wmEvent = HIWORD(wParam); //得到命令类型
switch(wmId)
{
case IDC_BUTTON_SRC: //打开显示源文件夹路径对话框
MessageBox(hDlg,"have cli cked the src button.","SRC",MB_OK);
break;

case IDC_BUTTON_DST: //打开显示目的文件夹路径对话框
MessageBox(hDlg,"have clicked the dst button.","dst",MB_OK);
break;

case ID_SAVE: //单击保存按钮
GetWindowText(hEditSrc,srcDir,MAX_LENGTH); //得到编辑框的源路径
GetWindowText(hEditDst,dstDir,MAX_LENGTH); //和目的路径
//保存源路径下的文件到目的路径(不能递归)
SaveFiles(dstDir,srcDir);
break;

case ID_CANCEL: //退出
// MessageBox(hDlg,"have clicked the cancel button.","cancel",MB_OK);
EndDialog(hDlg,IDCANCEL);
break;

case IDC_ABOUT: //关于
DialogBox(hInst,MAKEINTRESOURCE(IDD_DLG_ABOUT),hDlg,(DLGPROC)DlgAbout);
break;
}
break;
case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc(hDlg, message, wParam, lParam);
}

LRESULT CALLBACK DlgAbout(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam)
{//About对话框函数定义
switch (message)
{
case WM_INITDIALOG:
return TRUE;

case WM_COMMAND:
if (LOWORD(wParam) == IDOK)
{
EndDialog(hDlg, LOWORD(wParam));
return TRUE;
}
break;
}
//return DefWindowProc (hDlg, message, wParam, lParam);
return FALSE;
}

void SaveFiles(LPTSTR lpDstDir,const LPTSTR lpSrcDir) //保存目录下的文件(不能递归)
{
//MessageBox(NULL,"have clicked the cancel button.","cancel",MB_OK);
return;
}
fbmsf 2003-10-16
  • 打赏
  • 举报
回复
case IDC_BUTTON_SRC: //打开显示源文件夹路径对话框
MessageBox(0, "have cli cked the src button.","SRC",MB_OK);
break;
这样。
keiven 2003-10-16
  • 打赏
  • 举报
回复
GetWindowText函数的第一参数是一个窗口句柄,这个句柄可以用 GetDlgItem(hDlg,IDC_EDIT),其中hDlg你的对话框句柄。

至于你的第二个问题,我认为 不要前面的那个句柄参数吧。你试一下看看。
zxm927 2003-10-15
  • 打赏
  • 举报
回复
为什么啊。啊有人指点一下。
zxm927 2003-10-15
  • 打赏
  • 举报
回复
为什么我弹出来的对话框上的按钮不能点??包括MessageBox()的“确定”?
比如:
case IDC_BUTTON_SRC: //打开显示源文件夹路径对话框
MessageBox(hDlg, "have cli cked the src button.","SRC",MB_OK);
break;
弹出个BOX后它不能被选中(一直是灰的),能拖来拖去,但是不能按确定按钮;
所有的CASE语句里都不能这么做,包括AboutBox回调函数中的确定.
为什么啊?
zxm927 2003-10-15
  • 打赏
  • 举报
回复
为什么我这么用就不对?
GetWindowText(GetDlgItem(hDlg,IDC_EDIT_SRC),szText,MAX_LENGTH);
而这样用就对了?
HWND hEdit;
hEdit=GetDlgItem(hDlg,IDC_EDIT_SRC);
GetWindowText(hEdit,szText,MAX_LENGTH);
luogucai 2003-10-15
  • 打赏
  • 举报
回复
同意titilima(李马)
李马 2003-10-15
  • 打赏
  • 举报
回复
第一个参数是edit的句柄,可以这样使用:
TCHAR szText[100];
HWND hEdit = GetDlgItem(hDlg, IDC_EDIT);
GetWindowText(hEdit, szText, 100);
这样之后,szText中存放的就是edit中的字符串了。
不过这个函数不能用于取得星号密码。
spwnihao 2003-10-15
  • 打赏
  • 举报
回复
CString& str;
((CEdit*)GetDlgItem("IDC_EDIT"))->GetWindowText(&str);

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧