问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mfc理财平台是什么时候不能提现的

发布网友 发布时间:2022-04-22 13:03

我来回答

2个回答

懂视网 时间:2022-04-14 17:15

作为现代的软件,往往是连着数据库的,而连着和用户方便地操作之间,还有着界面这道坎。MFC是Windows上比较好开发用户界面的框架,然而其自带的控件中没有对于数据库表格支持较好的控件,而使用网上提到的 DataGrid 等控件在本人的win8.1+VS2013平台上老出现

作为现代的软件,往往是连着数据库的,而连着和用户方便地操作之间,还有着界面这道坎。MFC是Windows上比较好开发用户界面的框架,然而其自带的控件中没有对于数据库表格支持较好的控件,而使用网上提到的 DataGrid 等控件在本人的win8.1+VS2013平台上老出现找不到控件或者头文件的问题,搞的烦死人。最后想到 List Control 控件只要稍作修改,加上单元格编辑和单元格下拉列表,其实就能和数据库进行良好的对接,一百度,果然有人已经做了这件事,实在是太让人感动了!  下面将介绍一下如何实现上面提到的这两个功能,由于是参考别人的,如果想看原文:请点击这里。至于跟原文最大的不同,我想是我把流程操作尽我所能写的详细,并最大化的简化代码,最后顺带加上一些本人觉得能给数据库操作带来方便的功能的实现方法上去。 OK,下面我们来看看这两个功能如何实现吧。其实实现的原理很简单,就是在点击到列表相应单元格的时候,在相应的位置生成一个跟单元格大小相当的编辑框或者下拉列表框并贴在单元格上面而已。 实现如下: 在对话框类声明中添加如下变量和函数:
int e_Item; //刚编辑的行 
int e_SubItem; //刚编辑的列 

CEdit m_Edit; //生成单元编辑框对象
bool haveeditcreate;//标志编辑框已经被创建
void createEdit(NM_LISTVIEW *pEditCtrl, CEdit *createdit, int &Item, int &SubItem, bool &havecreat);//创建单元格编辑框函数
void distroyEdit(CListCtrl *list, CEdit* distroyedit, int &Item, int &SubItem);//销毁单元格编辑框对象

CComboBox m_comBox;//生产单元格下拉列表对象
bool haveccomboboxcreate;//标志下拉列表框已经被创建
void createCcombobox(NM_LISTVIEW *pEditCtrl, CComboBox *createccomboboxobj, int &Item, int &SubItem, bool &havecreat);//创建单元格下拉列表框函数
void distroyCcombobox(CListCtrl *list, CComboBox* distroyccomboboxobj, int &Item, int &SubItem);//销毁单元格下拉列表框
在对话框的初始化函数OnInitDialog()中添加初始化代码如下:
haveeditcreate = false;//初始化标志位,表示还没有创建编辑框
haveccomboboxcreate = false;//初始化标志位,表示还没有创建下拉列表框
RECT m_rect;
m_list.GetClientRect(&m_rect); //获取list的客户区,方便调节每一列的宽度 
m_list.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT); //设置list风格,LVS_EX_GRIDLINES为网格线(只适用与report风格的listctrl)
																	 //LVS_EX_FULLROWSELECT为选中某行使整行高亮(只适用与report风格的listctrl)
m_list.InsertColumn(0, _T("学号"), LVCFMT_LEFT, m_rect.right / 4);
m_list.InsertColumn(1, _T("姓名"), LVCFMT_LEFT, m_rect.right / 4);
m_list.InsertColumn(2, _T("性别"), LVCFMT_LEFT, m_rect.right / 4);
m_list.InsertColumn(3, _T("班级"), LVCFMT_LEFT, m_rect.right / 4);

m_list.InsertItem(0, _T("09090901"));//添加第一个*
m_list.SetItemText(0, 1, _T("小李"));
m_list.SetItemText(0, 2, _T("男"));
m_list.SetItemText(0, 3, _T("计科0901"));

m_list.InsertItem(1, _T("09090902"));//添加第二个*
m_list.SetItemText(1, 1, _T("小王"));
m_list.SetItemText(1, 2, _T("男"));
m_list.SetItemText(1, 3, _T("计科0902"));
为列表框添加单击响应函数:
void CNephoVisionDatabaseDlg::OnNMClickListStudentdata(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR);
	NM_LISTVIEW *pEditCtrl = (NM_LISTVIEW *)pNMHDR;
	printf("行:%d,列:%d
", pEditCtrl->iItem, pEditCtrl->iSubItem);
	if (pEditCtrl->iItem==-1)//点击到非工作区
	{
		if (haveeditcreate == true)//如果之前创建了编辑框就销毁掉
		{
			distroyEdit(&m_list, &m_Edit, e_Item, e_SubItem);//销毁单元格编辑框对象
			haveeditcreate = false;
		}
		if (haveccomboboxcreate == true)//如果之前创建了下拉列表框就销毁掉
		{
			distroyCcombobox(&m_list, &m_comBox, e_Item, e_SubItem);
			haveccomboboxcreate = false;
		}
	}
	else if (pEditCtrl->iSubItem != 2)//如果不是性别选项
	{
		if (haveccomboboxcreate == true)//如果之前创建了编辑框就销毁掉
		{
			distroyCcombobox(&m_list, &m_comBox, e_Item, e_SubItem);
			haveccomboboxcreate = false;
		}
		if (haveeditcreate == true)
		{
			if (!(e_Item == pEditCtrl->iItem && e_SubItem == pEditCtrl->iSubItem))//如果点中的单元格不是之前创建好的
			{
				distroyEdit(&m_list, &m_Edit, e_Item, e_SubItem);
				haveeditcreate = false;
				createEdit(pEditCtrl, &m_Edit, e_Item, e_SubItem, haveeditcreate);//创建编辑框
			}
			else//点中的单元格是之前创建好的
			{
				m_Edit.SetFocus();//设置为焦点 
			}
		}
		else
		{
			e_Item = pEditCtrl->iItem;//将点中的单元格的行赋值给“刚编辑过的行”以便后期处理
			e_SubItem = pEditCtrl->iSubItem;//将点中的单元格的行赋值给“刚编辑过的行”以便后期处理
			createEdit(pEditCtrl, &m_Edit, e_Item, e_SubItem, haveeditcreate);//创建编辑框
		}
	}
	else//如果是性别选项,在单元格处生成下拉列表项
	{
		if (haveeditcreate == true)//如果之前创建了编辑框就销毁掉
		{
			distroyEdit(&m_list, &m_Edit, e_Item, e_SubItem);
			haveeditcreate = false;
		}
		if (haveccomboboxcreate == true)
		{
			if (!(e_Item == pEditCtrl->iItem && e_SubItem == pEditCtrl->iSubItem))//如果点中的单元格不是之前创建好的
			{
				distroyCcombobox(&m_list, &m_comBox, e_Item, e_SubItem);
				haveccomboboxcreate = false;
				createCcombobox(pEditCtrl, &m_comBox, e_Item, e_SubItem, haveccomboboxcreate);//创建编辑框
				m_comBox.AddString(L"男");
				m_comBox.AddString(L"女");
				m_comBox.ShowDropDown();//自动下拉
			}
			else//点中的单元格是之前创建好的
			{
				m_comBox.SetFocus();//设置为焦点 
			}
		}
		else
		{
			e_Item = pEditCtrl->iItem;//将点中的单元格的行赋值给“刚编辑过的行”以便后期处理
			e_SubItem = pEditCtrl->iSubItem;//将点中的单元格的行赋值给“刚编辑过的行”以便后期处理
			createCcombobox(pEditCtrl, &m_comBox, e_Item, e_SubItem, haveccomboboxcreate);//创建编辑框
			m_comBox.AddString(L"男");
			m_comBox.AddString(L"女");
			m_comBox.ShowDropDown();//自动下拉
		}
	}
	*pResult = 0;
}
写创建与销毁单元格编辑框和下拉列表框函数的实现:
void CNephoVisionDatabaseDlg::createEdit(NM_LISTVIEW *pEditCtrl, CEdit *createdit, int &Item, int &SubItem, bool &havecreat)//创建单元格编辑框函数
																				//pEditCtrl为列表对象指针,createdit为编辑框指针对象,
																				//Item为创建单元格在列表中的行,SubItem则为列,havecreat为对象创建标准
{
	Item = pEditCtrl->iItem;//将点中的单元格的行赋值给“刚编辑过的行”以便后期处理
	SubItem = pEditCtrl->iSubItem;//将点中的单元格的行赋值给“刚编辑过的行”以便后期处理
	createdit->Create(ES_AUTOHSCROLL | WS_CHILD | ES_LEFT | ES_WANTRETURN,
		CRect(0, 0, 0, 0), this, IDC_EDIT_CREATEID);//创建编辑框对象,IDC_EDIT_CREATEID为控件ID号3000,在文章开头定义
	havecreat = true;
	createdit->SetFont(this->GetFont(), FALSE);//设置字体,不设置这里的话上面的字会很突兀的感觉
	createdit->SetParent(&m_list);//将list control设置为父窗口,生成的Edit才能正确定位,这个也很重要
	CRect EditRect;
	m_list.GetSubItemRect(e_Item, e_SubItem, LVIR_LABEL, EditRect);//获取单元格的空间位置信息
	EditRect.SetRect(EditRect.left+1, EditRect.top+1, EditRect.left + m_list.GetColumnWidth(e_SubItem)-1, EditRect.bottom-1);//+1和-1可以让编辑框不至于挡住列表框中的网格线
	CString strItem = m_list.GetItemText(e_Item, e_SubItem);//获得相应单元格字符
	createdit->SetWindowText(strItem);//将单元格字符显示在编辑框上
	createdit->MoveWindow(&EditRect);//将编辑框位置放在相应单元格上
	createdit->ShowWindow(SW_SHOW);//显示编辑框在单元格上面
	createdit->SetFocus();//设置为焦点 
	createdit->SetSel(-1);//设置光标在文本框文字的最后
}

void CNephoVisionDatabaseDlg::distroyEdit(CListCtrl *list,CEdit* distroyedit, int &Item, int &SubItem)
{
	CString meditdata;
	distroyedit->GetWindowTextW(meditdata);
	list->SetItemText(Item, SubItem, meditdata);//获得相应单元格字符
	distroyedit->DestroyWindow();//销毁对象,有创建就要有销毁,不然会报错
}

void CNephoVisionDatabaseDlg::createCcombobox(NM_LISTVIEW *pEditCtrl, CComboBox *createccomboboxobj, int &Item, int &SubItem, bool &havecreat)//创建单元格下拉列表框函数
//pEditCtrl为列表对象指针,createccombobox为下拉列表框指针对象,
//Item为创建单元格在列表中的行,SubItem则为列,havecreat为对象创建标准
{
	Item = pEditCtrl->iItem;//将点中的单元格的行赋值给“刚编辑过的行”以便后期处理
	SubItem = pEditCtrl->iSubItem;//将点中的单元格的行赋值给“刚编辑过的行”以便后期处理
	havecreat = true;
	createccomboboxobj->Create(WS_CHILD | WS_VISIBLE | CBS_DROPDOWN | CBS_OEMCONVERT, CRect(0, 0, 0, 0), this, IDC_COMBOX_CREATEID);
	createccomboboxobj->SetFont(this->GetFont(), FALSE);//设置字体,不设置这里的话上面的字会很突兀的感觉
	createccomboboxobj->SetParent(&m_list);//将list control设置为父窗口,生成的Ccombobox才能正确定位,这个也很重要
	CRect EditRect;
	m_list.GetSubItemRect(e_Item, e_SubItem, LVIR_LABEL, EditRect);//获取单元格的空间位置信息
	EditRect.SetRect(EditRect.left + 1, EditRect.top + 1, EditRect.left + m_list.GetColumnWidth(e_SubItem) - 1, EditRect.bottom - 1);//+1和-1可以让编辑框不至于挡住列表框中的网格线
	CString strItem = m_list.GetItemText(e_Item, e_SubItem);//获得相应单元格字符
	createccomboboxobj->SetWindowText(strItem);//将单元格字符显示在编辑框上
	createccomboboxobj->MoveWindow(&EditRect);//将编辑框位置放在相应单元格上
	createccomboboxobj->ShowWindow(SW_SHOW);//显示编辑框在单元格上面
}

void CNephoVisionDatabaseDlg::distroyCcombobox(CListCtrl *list, CComboBox* distroyccomboboxobj, int &Item, int &SubItem)
{
	CString meditdata;
	distroyccomboboxobj->GetWindowTextW(meditdata);
	list->SetItemText(Item, SubItem, meditdata);//更新相应单元格字符
	distroyccomboboxobj->DestroyWindow();//销毁对象,有创建就要有销毁,不然会报错
}
OK,到此我们已经实现了添加单元格编辑框和单元格下拉列表框的功能了,点击除性别列外的列表单元格看到以下效果:
点击性别列单元格则看到下拉列表效果,如下:

在单元格编辑框中写东西的时候往往喜欢按回车,这个时候如果不加处理的话会发现一个很崩溃的现象,程序直接退出了。这个可以重载对话框类的OnOK()函数来避免。就是在对话框类声明中添加
afx_msg void OnOK();
然后将其定义为什么都不做:
void CNephoVisionDatabaseDlg::OnOK()
{
}
这样就不会有按回车直接退出程序的事情发生了。

此外,如果希望在编辑框或者下拉列表框失去焦点的时候就将数据列表中的相关信息更新,可以响应动态创建的这两个控件的失去焦点消息,方法如下: 在对话框类声明中添加
afx_msg void OnKillfocusEdit();//动态生成编辑框失去焦点响应函数
afx_msg void OnKillfocusCcomboBox();//动态生成下拉列表框失去焦点响应函数
在对话框类实现的消息映射描述中添加
ON_EN_KILLFOCUS(IDC_EDIT_CREATEID, &CNephoVisionDatabaseDlg::OnKillfocusEdit)//添加动态生成编辑框的失去焦点响应函数
ON_CBN_KILLFOCUS(IDC_COMBOX_CREATEID, &CNephoVisionDatabaseDlg::OnKillfocusCcomboBox)
这样这两个控件在失去焦点的时候就会响应分别定义好的函数,我们只需要在相应的函数添加处理代码就可以了:
void CNephoVisionDatabaseDlg::OnKillfocusEdit()
{
	if (haveeditcreate == true)//如果之前创建了编辑框就销毁掉
	{
		distroyEdit(&m_list, &m_Edit, e_Item, e_SubItem);//销毁单元格编辑框对象
		haveeditcreate = false;
	}
	if (haveccomboboxcreate == true)//如果之前创建了下拉列表框就销毁掉
	{
		distroyCcombobox(&m_list, &m_comBox, e_Item, e_SubItem);
		haveccomboboxcreate = false;
	}
}

void CNephoVisionDatabaseDlg::OnKillfocusCcomboBox()
{
	if (haveeditcreate == true)//如果之前创建了编辑框就销毁掉
	{
		distroyEdit(&m_list, &m_Edit, e_Item, e_SubItem);//销毁单元格编辑框对象
		haveeditcreate = false;
	}
	if (haveccomboboxcreate == true)//如果之前创建了下拉列表框就销毁掉
	{
		distroyCcombobox(&m_list, &m_comBox, e_Item, e_SubItem);
		haveccomboboxcreate = false;
	}
}












热心网友 时间:2022-04-14 14:23

2020年一月份。
mfc理财平台是马来西亚MBI集团资产(国际)管理公司旗下的子公司。MFC理财(mfcclub)以游戏代币理财为卖点,通过人传人的方式,以高额回报吸引眼球,实为高息揽资。
mfc理财的运营模式符合庞氏*的拉人头,投钱,发展下线等特征,拆东墙补西墙,先来的投资者分后来的投资者的钱,靠人员链和资金链来维系,目前已被*,工商认定为传销性质。因此,mfc理财平台是*毋庸置疑。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...每次文字比较多超出屏幕大小就不知道怎么截屏,求教大佬! 我国政策性 广西明士清医疗器械有限公司怎么样? 广西禾力药业有限公司怎么样? 广西龙母圣商贸有限公司怎么样? 安徽合肥有什么去痔的好地方 我女朋友的谷丙转氨酶过高(达到121),而且两对半检测为阴性,是肝功能有... 泸州丽人女子医院开展科室 自由之子本次世界杯是否将在小组赛中被菜? 世界杯谁会嬴 MFC理财是不是骗局 mfc理财平台可靠吗? mfc理财平台是骗局吗? 404 Not Found 梦见被疯狗咬要打预防针吗? 做梦被疯狗咬了,什么意思 今日头条“春节红包”提现不了? 今日头条极速版是什么? 今日头条能赚钱吗 公众号拉新哪一种方法好? 涓怎么读音 今日头条极速版赚钱是不是真的? 互联网用户拉新属于传销吗? 今日头条极速版那些广告是自己平台的? 怎么做香脆麻辣鸡腿好吃 煮鸡腿用什么材料 肯德基鸡腿制作方法 香脆咖喱鸡腿的做法,香脆咖喱鸡腿怎么做好吃 香脆鸡腿的做法大全 小米4没电关机后就充不进去电,指示灯也不亮了 MFC是传销吗? mbi集团的mfc理财可靠吗?是骗人的吗? mfc理财是骗人的吗 mfc是不是真的? mfc理财在中国合法吗 mfc是怎样的理财平台,是骗局吗? 马来西亚投资理财MFC被骗20多万,怎么打官司起诉还是报警? mfc投资理财靠谱吗,钱能都提出来吗? MFC理财平台 :合法吗? mfc国际金融理财是属于什么?直销,合法吗? MFC理财是个什么? 用平常造句? 用时间或者平时造句 用平时和可是造句? 用一些,哪些,平时分别造句 用平常的两个不同意思造句 ①:普通,不特别 ②:平时 用带点的词语造句。 1,继续、平时 平时---在一定条件下造句 涓怎么读音 用平常的两个不同意思造句