分类: C/C++
2007-10-30 21:25:05
问:如何设置鼠标?
答: HCURSOR m_hCursor;
。。。
m_hCursor=LoadCursor(IBC_CURSOR1);//IDC_CURSOR1 为自己的鼠标资源
。。。
BOOL CEx3Dlg::OnSetCursor(CWnd*pWnd , UINT nHitTest,UINT message)
{
if(m_hCursor)
{
SetCursor(m_hCursor);
return TRUE;
}
return CDialog::OnSetCursor(pWnd , nHitTest,message);
}
问:如何加载应用程序?
答:。。。
STARTUPINFO StartupInfo;
::memset(&StartupInfo,0,sizeof(STARTUPINFO));
StartupInfo.cb=sizeof(STARTUPINFO);
PROCESS_INFORMATION ProcessInfo;
if(!::CreateProcess(fileName,NULL,NULL,和NULL,FALSE,0,NULL , NULL,&StartupInfo,&ProcessInfo))
{
AfxMessageBox("message");
}
注:根据自己需要,更变函数内的参数
问:如何动态创建开放数据库连接数据源?
答:# include "odbcinst.h"
。。。
CFileStatus state;
CFile::GetStatus("bus.mdb",state);
CString str1;
char str[255];
int pathLen;
strcpy(str,status.m_szFullName);
pathLen=strlen(str);
str[pathLen-8]='\0';
char szdsn[255];
sprintf(szdsn,"DSN=bus1?DESCRIPTION=bus data? DBQ=bus.mdb? FIL=MicrosoftAccess? DEFAULTDIR=%s?? ",str);
pathLen=strlen(szdsn);
for(int i=0;i
if(szdsn[i]=='?')
szdsn[i]='\0';
}
//str1.Format("DSN=bus1\\0 描述 =公共汽车数据\\0 DBQ=bus.mdb\\0 FIL=MicrosoftAccess\\0 DEFAULTDIR=%s\\0",str);
//AfxMessageBox(str1);
if(!SQLConfigDataSource(NULL,ODBC_ADD_DSN," 微软存取驾驶者 (*.mdb)\0",(LPCSTR)szdsn))
AfxMessageBox("Can’t Create DSN");
問:窗口及各種資源式樣?
答:
1,窗口樣式:
WS_POPUP 彈出
WS_CHILD 子窗口
WS_MINIMIZE 最小化
WS_VISIBLE 可見
WS_DISABLED 不可見
WS_CLIPSIBLINGS
WS_CLIPCHILDREN
WS_MAXIMIZE 最大化
WS_BORDER 邊框
WS_DLGFRAME 框架
WS_VSCROLL 垂直滾動條
WS_HSCROLL 水平滾動條
WS_SYSMENU 系統菜單
WS_THICKFRAME
WS_GROUP
WS_TABSTOP 定位键鍵
WS_POPUPWINDOW 帶邊框,系統菜單的彈出窗口
WS_OVERLAPPEDWINDOW帶邊框,標題欄,系統菜單及最大,最小化按鈕
WS_CAPTION 帶標題欄
WS_CHILDWINDOW
WS_MAXIMIZEBOX 帶最大化按鈕
WS_MINIMIZEBOX 最小化按鈕
WS_OVERLAPPED) 邊框的標題欄
2,窗口擴展樣式
WS_EX_DLGMODALFRAME
WS_EX_NOPARENTNOTIFY
WS_EX_TOPMOST
WS_EX_ACCEPTFILES
WS_EX_TRANSPARENT
WS_EX_MDICHILD
WS_EX_TOOLWINDOW
WS_EX_WINDOWEDGE
WS_EX_CLIENTEDGE
WS_EX_CONTEXTHELP
WS_EX_RIGHT
WS_EX_LEFT
WS_EX_RTLREADING
WS_EX_LTRREADING
WS_EX_LEFTSCROLLBAR
WS_EX_RIGHTSCROLLBAR
WS_EX_CONTROLPARENT
WS_EX_STATICEDGE
WS_EX_APPWINDOW
WS_EX_OVERLAPPEDWINDOW
WS_EX_PALETTEWINDOW)
3,對話框樣式
WS_POPUP
WS_CHILD
WS_MINIMIZE
WS_VISIBLE
WS_DISABLED
WS_CLIPSIBLINGS
WS_CLIPCHILDREN
WS_MAXIMIZE
WS_BORDER
WS_DLGFRAME
WS_VSCROLL
WS_HSCROLL
WS_SYSMENU
WS_THICKFRAME
WS_GROUP
WS_POPUPWINDOW
WS_OVERLAPPEDWINDOW
WS_TABSTOP
WS_CAPTION
WS_CHILDWINDOW
WS_MAXIMIZEBOX
WS_MINIMIZEBOX
WS_OVERLAPPED
DS_ABSALIGN
DS_SYSMODAL
DS_LOCALEDIT
DS_SETFONT
DS_MODALFRAME
DS_NOIDLEMSG
DS_SETFOREGROUND
DS_3DLOOK
DS_FIXEDSYS
DS_NOFAILCREATE
DS_CONTROL
DS_CENTER
DS_CENTERMOUSE
DS_CONTEXTHELP
4,按鈕樣式
BS_PUSHBUTTON
BS_DEFPUSHBUTTON
BS_CHECKBOX
BS_AUTOCHECKBOX
BS_RADIOBUTTON
BS_3STATE
BS_AUTO3STATE
BS_GROUPBOX
BS_USERBUTTON
BS_AUTORADIOBUTTON
BS_OWNERDRAW
BS_LEFTTEXT
BS_TEXT
BS_ICON
BS_BITMAP
BS_LEFT
BS_RIGHT
BS_CENTER
BS_TOP
BS_BOTTOM
BS_VCENTER
BS_PUSHLIKE
BS_MULTILINE
BS_NOTIFY
BS_FLAT
BS_RIGHTBUTTON
5,組合框樣式
CBS_SIMPLE
CBS_DROPDOWN
CBS_DROPDOWNLIST
CBS_OWNERDRAWFIXED
CBS_OWNERDRAWVARIABLE
CBS_AUTOHSCROLL
CBS_OEMCONVERT
CBS_SORT
CBS_HASSTRINGS
CBS_NOINTEGRALHEIGHT
CBS_DISABLENOSCROLL
CBS_UPPERCASE
CBS_LOWERCASE,
6,編輯框樣式
ES_LEFT 左對齊
ES_CENTER 居中
ES_RIGHT 居右
ES_MULTILINE 多行
ES_UPPERCASE 全部大寫
ES_LOWERCASE 全部小寫
ES_PASSWORD 爲密碼框
ES_AUTOVSCROLL 自動擴展垂直滾動條
ES_AUTOHSCROLL 自動擱展水平滾動條
ES_NOHIDESEL
ES_OEMCONVERT
ES_READONLY 只讀
ES_WANTRETURN 可以輸入回車
ES_NUMBER 數字
7,列表框樣式
LBS_NOTIFY 接收消息
LBS_SORT 排序
LBS_NOREDRAW
LBS_MULTIPLESEL
LBS_OWNERDRAWFIXED
LBS_OWNERDRAWVARIABLE
LBS_HASSTRINGS
LBS_USETABSTOPS
LBS_NOINTEGRALHEIGHT
LBS_MULTICOLUMN
LBS_WANTKEYBOARDINPUT
LBS_EXTENDEDSEL
LBS_DISABLENOSCROLL
LBS_NODATA
LBS_NOSEL
LBS_STANDARD
8,滾動條樣式
SBS_HORZ 水平
SBS_VERT 垂直
SBS_TOPALIGN
SBS_LEFTALIGN
SBS_BOTTOMALIGN
SBS_RIGHTALIGN
SBS_SIZEBOXTOPLEFTALIGN
SBS_SIZEBOXBOTTOMRIGHTALIGN
SBS_SIZEBOX
SBS_SIZEGRIP
9靜態控件樣式
SS_LEFT
SS_CENTER
SS_RIGHT
SS_ICON
SS_BLACKRECT
SS_GRAYRECT
SS_WHITERECT
SS_BLACKFRAME
SS_GRAYFRAME
SS_WHITEFRAME
SS_USERITEM
SS_SIMPLE
SS_LEFTNOWORDWRAP
SS_OWNERDRAW
SS_BITMAP
SS_ENHMETAFILE
SS_ETCHEDHORZ
SS_ETCHEDVERT
SS_ETCHEDFRAME
SS_TYPEMASK
SS_NOPREFIX
SS_NOTIFY
SS_CENTERIMAGE
SS_RIGHTJUST
SS_REALSIZEIMAGE
SS_SUNKEN
SS_ENDELLIPSIS
SS_PATHELLIPSIS
SS_WORDELLIPSIS
SS_ELLIPSISMASK
问:在重写进步类时,如何得到进步当前位置的象素值?
答:。。。
int nLower=…
int nUpper=…
。。。
Crect rect;//保存滚动条的大小
GetClientRect(&rect);
。。。
rect.right=(((float)rect.Width()*(float)(GetPos()-nLower))/(nUpper-nLower));