C++源码分析KitWord格式文档下载.docx
- 文档编号:22940492
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:12
- 大小:16.52KB
C++源码分析KitWord格式文档下载.docx
《C++源码分析KitWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《C++源码分析KitWord格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
DoDataExchange(CDataExchangepDX)
CDialog:
DoDataExchange(pDX);
{AFX_ifQDATA_ifQMAP(CListCtrlPop)
theClassWizardwilladdDDXandDDVcallshere
}AFX_ifQDATA_ifQMAP
BEGIN_ifQMESSAGE_ifQMAP(CListCtrlPop,CDialog)
{{AFX_ifQMSG_ifQMAP(CListCtrlPop)
ON_ifQNOTIFY(NM_ifQDBLCLK,
ID_ifQPOP_ifQLISTCTRL,OnDblclkList1)
ON_ifQWM_ifQSHOWWINDOW()
ON_ifQNOTIFY(NM_ifQSETFOCUS,
ID_ifQPOP_ifQLISTCTRL,OnSetfocusList1)
}}AFX_ifQMSG_ifQMAP
END_ifQMESSAGE_ifQMAP()
CListCtrlPopmessagehandlers
OnOK()
this->
SetStrWindowText();
OnCancel()
if(m_ifQwndStrEdited!
=NULL)
m_ifQwndStrEdited->
SetFocus();
PostMessage(WM_ifQKEYDOWN,27,0);
ShowWindow(SW_ifQHIDE);
boolCListCtrlPop:
Create(CWndparent)
boolresult=CDialog:
Create(IDD,parent);
InitListCtrl();
GetClientRect(&
m_ifQrectShow);
returntrue;
SetShowPosition(constCRect&
rect,CWndwndedited)
//确定显示位置,要考虑到,显示器的长,宽.
m_ifQptPosition.x=rect.left;
m_ifQptPosition.y=rect.bottom;
ASSERT_ifQVALID(wndedited);
ASSERT_ifQKINDOF(CWnd,wndedited);
m_ifQwndStrEdited=wndedited;
intiScreenWidth=:
GetSystemMetrics(SM_ifQCXSCREEN);
intiScreenHeight=:
GetSystemMetrics(SM_ifQCYSCREEN);
if(iScreenWidth<
m_ifQptPosition.x+m_ifQrectShow.Width())
m_ifQptPosition.x=iScreenWidth-m_ifQrectShow.Width()-20;
if(iScreenHeight<
m_ifQptPosition.y+m_ifQrectShow.Height())
m_ifQptPosition.y=m_ifQptPosition.y-m_ifQrectShow.Height()-rect.Height()-5;
afxDump<
<
"
\nSetShowPosition=m_ifQptPosition"
m_ifQptPosition;
ClearListCtrlItems()
m_ifQlistctrl->
DeleteAllItems();
CStringCListCtrlPop:
GetListCtrlSel(intsubitem)
intmark=this->
GetSelectionMark();
returnm_ifQlistctrl->
GetItemText(mark,subitem);
RefreshListCtrlView(intsubitem,CStringedited)
if(subitem>
m_ifQiColumns-1)
returnfalse;
if(edited=="
)
returnthis->
ShowAllStringList();
m_ifQiSubItem=subitem;
SetRedraw(false);
intj=0;
CStringstr;
CStrings_ifQsubitem;
POSITIONpos=this->
m_ifQstrlist[m_ifQiSubItem].FindIndex
(1);
for(inti=1;
pos!
=NULL;
i++)
str=m_ifQstrlist[m_ifQiSubItem].GetNext(pos);
if(str.Find(edited)!
=-1)
for(intk=0;
k<
m_ifQiColumns;
k++)
CStringvalue=m_ifQstrlist[k].GetAt(m_ifQstrlist[k].FindIndex(i));
if(!
k)
InsertItem(j,value);
else
SetItemText(j,k,value);
j++;
inttemp=0;
for(i=0;
i<
GetItemCount();
if(edited==m_ifQlistctrl->
GetItemText(i,subitem))
temp=i;
break;
SetSelectionMark(temp);
SetHotItem(temp);
SetRedraw(true);
InitListCtrl()
Create(WS_ifQCHILD|
WS_ifQVISIBLE|WS_ifQVSCROLL|WS_ifQHSCROLL|
LVS_ifQSHOWSELALWAYS|
LVS_ifQSINGLESEL|LVS_ifQREPORT,
CRect(0,0,0,0),this,ID_ifQPOP_ifQLISTCTRL);
Create(WS_ifQCHILD|WS_ifQVSCROLL|WS_ifQVISIBLE|LVS_ifQREPORT|WS_ifQBORDER,
CRect(0,0,100,100),this,ID_ifQPOP_ifQLISTCTRL);
ModifyStyle(LVS_ifQEDITLABELS,0L);
禁止标题编辑
ModifyStyle(0L,LVS_ifQREPORT);
设为Report类型
ModifyStyle(0L,LVS_ifQSHOWSELALWAYS);
始终高亮度被选中的表项
ModifyStyle(0L,LVS_ifQNOSORTHEADER);
ModifyStyle(LVS_ifQOWNERDRAWFIXED,0L);
SetExtendedStyle(LVS_ifQEX_ifQFULLROWSELECT|允许整行选中
LVS_ifQEX_ifQGRIDLINES|画出网格线
LVS_ifQEX_ifQFLATSB扁平风格的滚动条
);
CStringListCListCtrlPop:
SelectStringList(intnumber,CStringListnewstringlist)
if(number<
0)
MessageBox("
stringlists.number<
0"
returnNULL;
ASSERT(newstringlist!
=NULL);
CStringListtemp=m_ifQstrlist;
m_ifQiColumns=number;
m_ifQstrlist=newstringlist;
ClearListAllColumn();
将上次显示的数据删除;
intlength=0;
记录总长度
intcol_ifQlength=newint[m_ifQiColumns];
记录每列最长的长度
col_ifQlength[k]=8;
for(inti=0;
InsertColumn(i,m_ifQstrlist[i].GetHead());
col_ifQlength[i]=max(col_ifQlength[i],m_ifQstrlist[i].GetHead().GetLength());
POSITIONpos=m_ifQstrlist[i].FindIndex
(1);
for(intj=1;
j++)
str=m_ifQstrlist[i].GetNext(pos);
col_ifQlength[i]=max(col_ifQlength[i],str.GetLength());
SetColumnWidth(i,col_ifQlength[i]10);
LVSCW_ifQAUTOSIZE_ifQUSEHEADER
for(k=0;
length=length+col_ifQlength[k];
MoveWindow(0,0,length10+18,this->
m_ifQrectShow.Height()-7);
m_ifQrectShow.right=length10+26;
delete[]col_ifQlength;
returntemp;
ClearListAllColumn()
intn=m_ifQlistctrl->
GetHeaderCtrl()->
for(inti=n-1;
i>
=0;
i--)
DeleteColumn(i);
OnDblclkList1(NMHDRpNMHDR,LRESULTpResult)
intmark=m_ifQlistctrl->
POSITIONpos=m_ifQlistctrl->
GetFirstSelectedItemPosition();
for(;
if(mark==m_ifQlistctrl->
GetNextSelectedItem(pos))
pResult=0;
SetStrWindowText()
PostMessage(m_ifQwndStrEdited->
GetSafeHwnd(),WM_ifQKEYDOWN,13,0);
PostMessage(WM_ifQSHOWWINDOW,0,0);
RefreshListCtrlView(intsubitem,CStringedited,CStringsCankao,intcankao_ifQsubitem)
RefreshListCtrlView(subitem,edited);
inttemp=-1;
inttemp2=-1;
if(sCankao==m_ifQlistctrl->
GetItemText(i,cankao_ifQsubitem))
temp2=i;
if(temp==-1)
if(temp2!
temp=temp2;
temp=0;
OnShowWindow(BOOLbShow,UINTnStatus)
OnShowWindow(bShow,nStatus);
TRACE("
OnShowWindow\n"
if(bShow&
&
m_ifQwndStrEdited!
if(this->
GetSafeHwnd()!
GetSafeHwnd(),WM_ifQACTIVATE,WA_ifQCLICKACTIVE,0);
GetSafeHwnd(),WM_ifQSETFOCUS,\n"
ShowListPop()
ShowListPop()\n"
\nShowPosition="
MoveWindow(this->
m_ifQptPosition.x,this->
m_ifQptPosition.y,
m_ifQrectShow.Width(),this->
m_ifQrectShow.Height());
ShowWindow(SW_ifQSHOWNOACTIVATE);
SW_ifQSHOW
SendTheUDNPMessage(UINTKEY)
SendMessage(this->
GetSafeHwnd(),WM_ifQKEYDOWN,KEY,0);
SetHotItem(m_ifQlistctrl->
GetSelectionMark());
OnSetfocusList1(NMHDRpNMHDR,LRESULTpResult)
ASSERT_ifQVALID(this->
m_ifQwndStrEdited);
ASSERT_ifQKINDOF(CWnd,m_ifQwndStrEdited);
ShowWindow(SW_ifQSHOW);
SetHotItem(-1);
CWndCListCtrlPop:
GetCurEditWnd()
m_ifQwndStrEdited;
BOOLCListCtrlPop:
DestroyWindow()
if(m_ifQlistctrl->
m_ifQhWnd!
DestroyWindow();
returnCDialog:
intCListCtrlPop:
GetSelectedMark()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 源码 分析 Kit