鍋氫竴涓彲缂栬緫鐨勮〃鏍兼帶浠
鍙戝竷: 2008-6-26 14:29 | 浣滆: admin | 鏌ョ湅: 140娆
銆愬疄鐜板唴瀹广戝仛涓涓彲缂栬緫鐨勮〃鏍兼帶浠躲
銆愪娇鐢ㄦ帶浠躲戜竴涓狹SFLEXGRID琛ㄦ牸鎺т欢锛屼竴涓枃鏈帶浠讹紝涓涓笅鎷夊垪琛ㄦ帶浠躲
銆愬疄鐜板師鐞嗐戞垜鍠滄鎶婅繖涓柟娉曠О涓鸿瑙夊亣璞°傜敱浜嶮SFLEXGRID鎺т欢鏈韩鏄笉鏀寔鐩存帴缂栬緫鐨勩傛墍浠ラ渶瑕佺粨鍚堟枃鏈帶浠舵垨鑰呬笅鎷夊垪琛ㄦ帶浠讹紝浣胯〃鏍兼帶浠剁殑杩愯鏁堟灉濡傚悓鍙互鐩存帴缂栬緫涓鏍枫
銆愬疄鐜版楠ゃ
1锛 褰撻紶鏍囩偣鍑昏〃鏍兼帶浠剁殑鏌愪竴鏍兼椂锛岄鍏堝垽鏂鍒楃殑灞炴э紝鏄洿鎺ョ紪杈戝憿锛岃繕鏄敤涓嬫媺鍒楄〃杩涜閫夋嫨銆
2锛 鏄剧ず闅愯棌鐨勬枃鏈帶浠舵垨鑰呬笅鎷夊垪琛ㄦ帶浠讹紝鏄剧ず鐨勪綅缃拰澶у皬涓庨変腑鏍肩殑浣嶇疆澶у皬瀹屽叏鐩稿悓锛岃繖鏍峰彲浠ヨ鐩栭変腑鏍
3锛 灏嗛変腑鏍肩殑鍐呭濉埌鏂囨湰鎺т欢鎴栬呬笅鎷夊垪琛ㄦ帶浠朵腑
4锛 淇敼瀹屾瘯鍚庯紝灏嗘柊鐨勫唴瀹瑰~鍒伴変腑鏍间腑锛屽悓鏃堕殣钘忔枃鏈帶浠舵垨鑰呬笅鎷夊垪琛ㄦ帶浠躲
銆愪富瑕佺▼搴忔鍙婅鏄庛
鍙橀噺瀹氫箟锛
CComboBox m_ChangeCombo锛--涓嬫媺鍒楄〃鎺т欢锛屽垵濮嬫椂涓嶅彲瑙
CEdit m_Change锛---------------鏂囨湰鎺т欢锛屽垵濮嬫椂涓嶅彲瑙
CSring m_sChange;----------------涓庢枃鏈帶浠跺叧鑱旂殑瀛楃涓
CMSFlexGrid m_FlexGrid锛-----琛ㄦ牸鎺т欢
绋嬪簭娈碉細
琛ㄦ牸鐐瑰嚮浜嬩欢锛氶変腑鏌愪竴鏍煎悗锛屽氨瑕佹樉绀虹浉搴旂殑鏂囨湰鎺т欢鎴栬呭垪琛ㄦ帶浠
void CChartInfoEditDlg::OnClickMsflexgrid()
{
//鐐瑰嚮鏃犳晥鍖,杩斿洖
long lRow = m_FlexGrid.GetRowSel();//鑾峰彇鐐瑰嚮鐨勮鍙
long lCol = m_FlexGrid.GetColSel(); //鑾峰彇鐐瑰嚮鐨勫垪鍙
if(lRow>m_SAttrInfo.attrNum) //濡傛灉鐐瑰嚮鍖鸿秴杩囨渶澶ц鍙凤紝鍒欑偣鍑绘槸鏃犳晥鐨
return;
if(lRow == 0) //濡傛灉鐐瑰嚮鏍囬琛岋紝涔熸棤鏁
return;
//
CRect rect;
m_FlexGrid.GetWindowRect(rect); //鑾峰彇琛ㄦ牸鎺т欢鐨勭獥鍙g煩褰
ScreenToClient(rect); //杞崲涓哄鎴峰尯鐭╁舰
// MSFlexGrid 鎺т欢鐨勫嚱鏁扮殑闀垮害鍗曚綅鏄"缂(twips)"锛
//闇瑕佸皢鍏惰浆鍖栦负鍍忕礌锛1440 缂 = 1 鑻卞
CDC* pDC =GetDC();
//璁$畻璞$礌鐐瑰拰缂囩殑杞崲姣斾緥
int nTwipsPerDotX = 1440 / pDC->GetDeviceCaps(LOGPIXELSX) ;
int nTwipsPerDotY = 1440 / pDC->GetDeviceCaps(LOGPIXELSY) ;
//璁$畻閫変腑鏍肩殑宸︿笂瑙掔殑鍧愭爣锛堣薄绱犱负鍗曚綅锛
long y = m_FlexGrid.GetRowPos(lRow)/nTwipsPerDotY;
long x = m_FlexGrid.GetColPos(lCol)/nTwipsPerDotX;
//璁$畻閫変腑鏍肩殑灏哄锛堣薄绱犱负鍗曚綅锛夈傚姞1鏄疄闄呰皟璇曚腑锛屽彂鐜板姞1鍚庢晥鏋滄洿濂
long width = m_FlexGrid.GetColWidth(lCol)/nTwipsPerDotX+1;
long height = m_FlexGrid.GetRowHeight(lRow)/nTwipsPerDotY+1;
//褰㈡垚閫変腑涓墍鍦ㄧ殑鐭╁舰鍖哄煙
CRect rc(x,y,x+width,y+height);
//杞崲鎴愮浉瀵瑰璇濇鐨勫潗鏍
rc.OffsetRect(rect.left+1,rect.top+1);
//娓呯┖涓嬫媺鍒楄〃鐨勫唴瀹
m_ChangeCombo.ResetContent( );
//浠ヤ笅鐪佺暐鍝竴鍒楃敤鏂囨湰鎺т欢锛屽摢涓鍒楃敤涓嬫媺鍒楄〃鎺т欢鐨勫垽鏂傚鏋滄槸鐢ㄤ笅鎷夊垪琛ㄦ帶浠讹紝鍒欎細鍏堝悜涓嬫媺鍒楄〃鎺т欢涓鍔犳暟鎹紝鍚﹀垯涓虹┖
鈥︹︹︹︹︹︹︹︹︹︹︹.
鈥︹︹︹︹︹︹︹︹︹︹︹.
//鑾峰彇閫変腑鏍肩殑鏂囨湰淇℃伅
CString strValue = m_FlexGrid.GetTextMatrix(lRow,lCol);
int num = m_ChangeCombo.GetCount();
//濡傛灉涓嬫媺鍒楄〃鎺т欢涓湁鏁版嵁锛屽垯琛ㄧず浣跨敤涓嬫媺鍒楄〃鎺т欢鏉ヨ繘琛屾暟鎹夋嫨
if(num!=0)
{
m_ChangeCombo.ShowWindow(SW_SHOW);//鏄剧ず鎺т欢
m_ChangeCombo.MoveWindow(rc); //绉诲姩鍒伴変腑鏍肩殑浣嶇疆锛岃鐩
m_ChangeCombo.SelectString(-1,strValue); //鍐呭鍏ㄩ夈傛柟渚跨洿鎺ヤ慨鏀
m_ChangeCombo.SetFocus(); //鑾峰彇鐒︾偣




发表于 2009-1-5 19:48
| 











