这个稍微麻烦,因为默认的GetCurSel()获取的是选中位置。
你这个,需要先
int nVertPos = GetDlgItem(IDC_LIST1)->GetScrollPos(SB_VERT);
获取滚动位置,然后获取全部条数,计算当前显示位置,这个位置可能还有误差(因为列表框显示高度也是一个参数)。
反正就是拿滚动位置计算百分比,然后估算出当前显示位置行号。
问的太含混了。
分析一下,首先你现在的程序应该是console模式的,出现的是DOS窗口输出,如果希望在text control输出,需要建立MFC基于对话框的工程,然后注意一下几点:
1·对话框建立编辑控件,并允许多行(在资源编辑器中)
2·对编辑控件建立变量(建议CString变量)
3·在需要输出结果的时候,对编辑控件变量赋值(注意多行需要字符串加,并用\n分隔)
4·注意更新界面UpdateDate(True);
所谓模态,是对窗口界面和消息控制的锁定,这时不能对窗口界面进行控制,但不是对程序的挂起。
主窗口类成员变量依然可以变化(但有控件关联的不行),类成员函数可以调用(但涉及消息的,不会执行)
创建的新线程DoPut生命期很短:为listbox添加一行数据,随后就结束了。这就是原因。
如果按照下面修改一下,那么就不会立即结束了。
DWORD Cc2Dlg::DoPut(){
while(1)
{
CString amdg=_T("d");
m_PBUFF1AddString(amdg);
Sleep(1000);//sleep 1 second
}
return 0;
}
以上就是关于MFC中怎么用代码求当前程序执行的行号全部的内容,包括:MFC中怎么用代码求当前程序执行的行号、请问如何在mfc中点击按钮运行程序,并把运行程序在Text control把程序结果显示出来,结果如下图显示、MFC中模态窗口d出后,原主窗口程序还继续执行么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)