getdlgitem

时间:2024-06-14 01:30:08编辑:阿星

解释一下MFC中的GetDlgItem是什么意思

Dlg -- 对话窗,一个控件。
根据一个对话窗或一个控件的ID, 返回一个指向这个对话窗或控件的对象的指针。

例如,IDC_EDIT1 是 控件的ID
CEdit* pBoxOne;
pBoxOne = (CEdit*) GetDlgItem(IDC_EDIT1);
用 GetDlgItem(IDC_EDIT1); 返回一个指向这个控件的指针, CEdit* ,存入 pBoxOne。

接下来,就可以用它了,例如:
GotoDlgCtrl(pBoxOne);


MFC 中GetDlgItem(ID)函数的问题!

“用哪个控件的指针指向GetDlgItem(IDC_LIST1)” 这个说法不准确。

GetDlgItem(IDC_LIST1) 这个函数获得的,是一个CWnd* 的窗口类指针,如果需要使用这个指针对控件进行操作,那么标准窗口操作(如:GetWindowText)是不需要强制类型转换的。如果操作是控件专有方法(如AddString),就要对指针进行强制转换,成为CListBox* 才能使用列表框类的专有方法(函数)。


编程语言是什么,都有那些,怎样编程?

编程语言是什么,都有那些,怎样编程?----编程语言就是人们利用特定的语言与计算机沟通--语言好多,什么C呀C++呀JAVA啊!VB呀等等好多呢,至于怎样编程,到时候你学了就知道一堆代码就OK了

怎样学习最基础的骇客技术?最基本的骇客技术,没什么基本的,你可以先学编程,比如先学个C++,并且学着时候要多看黑客编程里的原代码并加一理解,然后学习些网络知识,木马原理,病毒呀等等去研究下!其实骇客你看似威风,如果想用真本事威风--难啊!必须有一定的耐心,兴趣,外加些小聪明


VS2010 中使用 CString a; GetDlgItemText(IDC_EDIT2,a); 总会出现红下划线提示IDC_EDIT2未定义的标识符。

IDC_EDIT2 要在 resourec.h中定义下
一般是自动添加的 和控件关联的
没有的话手动加下
#define IDC_EDIT2 10008
//不重复的数值就行

void CMFCtestDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_EDIT1, m_edit1);
/*在这关联 控件变量 和 控件ID
windows通过 控件ID 操作控件 比较麻烦
关联后就可以通过对象操作
*/
}


error C2660: 'GetDlgItem' : function does not take 1 parameters

GetDlgItem的用法
基本用法(得到当前对话框中的控件):
CButton* btn = (CButton*)GetDlgItem(IDC_BUTTON_SEND);
btn->SetWindowTextW(_T("hello"));
如果想得到其他对话框中的控件,用GetDlgItem(hwnd,IDD);

CWnd::GetDlgItem(int nID)
这个是一个类成员函数,可使用CWnd* pWnd = GetDlgItem(ID_XXX);
而HWND GetDlgItem(
HWND hDlg, // handle of dialog box
int nIDDlgItem // identifier of control
);
是一个sdk的函数
两个的主要区别是用的地方不一样
一个参数的是在窗口中调用的函数,两个参数的是在平台SDK中调用的

你在对话框类里面调用GetDlgItem(IDC_BOARD_SIZE),就是调用的类成员函数CWnd::GetDlgItem
获得某个控件的句柄GetDlgItem(IDC_BOARD_SIZE)->m_hWnd就可以了

如果要用到第二种用法,要这样
::GetDlgItem(this-> m_hWnd,IDC_BOARD_SIZE);
效果一样的

那个IDC_BOARD_SIZE是你某个控件的id,

如果HWND GetDlgItem(
HWND hDlg, // handle of dialog box
int nIDDlgItem // identifier of control
);的话,
第一个参数是窗体的句柄,第二个参数是某个控件的ID,和IDC_BOARD_SIZE是一个意思
GetDlgItem(IDC_..),GetDlgItem(HWND hWnd, IDC_..)该如何使用,我在使用前者时老报错,提示应使用后者,但后者的hWnd不知如何获取。
GetDlgItem(IDC_..)是一个非静态方法,意思是你对话框内获取该控件指针,所以这里不需要获取对话框句柄,也就是说你如果在非对话框窗口里面调用这个方法就肯定会出错
GetDlgItem(HWND hWnd, IDC_..)是一个静态方法,它是一个让你指定从哪个对话框里获取控件指针
举个例子:你调用了上厕所这个函数,如果你在家里的话肯定是在自己家里上厕所,所以不需要知道在哪里上厕所(hwnd)
如果你在室外那么上厕所就一定要选一个地方(hwnd)。
如果说你上厕所的地方都不是一个房间,那么肯定会报错嘛,因为你在随地大小便,哈哈
所以你先搞清楚这两个函数的使用环境区别
再者,你问这个问题说明了你还没有搞清楚对话框是一个什么东西,建议学习一下深入浅出MFC

参考资料:
http://hi.baidu.com/wxing2008666/item/5f9d6ded9b44fafc2b09a44e


function does not take 1 parameters怎么改正这个错误?


error C2660: 'readcustomer' : function does not take 1 parameters意思是:函数 readcustomer 不是携带1个输入参数这个是调用readcustomer时的参数数量与函数定义不匹配。解决办法,修改调用函数调用语句或是函数定义。一如何学习不同的语言(1)首先是语音部分,学会之后再学习拼读,一定要多加练习,然后再学习语音篇,这样基本上遇见的韩语你都会读了。语法的学习是很有必要的,韩语是主宾谓结构,其中还有时态,例如:过去时态、将来时态等等,都是需要掌握的。(2)词汇的积累,无论是学习什么语言都需要一定的词汇积累,就像我们学习英语一样,上学的时候还要每天都背。二学习英语的原因 (1)学英语最大好处就是:掌握一门国际语言,走天下,其次对未来的发展有帮助,具体化就是工作福利、以及个人的一些工作发展都有着很大的帮助,小孩的话则是升初学、考取学校有很大的加分。(2)我们很可能住在两个不同的地方,生长在不同的文化背景之下。但我们都知道,这个世界需要更多的爱和理解。还有什么比起用英语(或其他语言)和外国友人交流更能使这个世界更加美好的呢?

上一篇:化妆品试用

下一篇:江西国土资源厅