windows编程总结

 

(一)Dialog篇:
    CDialog::DoModal();//显示对话框
    UpdateData(TRUE);//将数据从控件传递到相应的成员变量
    UpdateData(FALSE);//将数据从成员变量传递到相应控件
    显示消息框:
         int AfxMessageBox(LPCTSTR lpszText,UINT nType=MV_OK,UINT nIDHelp=0);
         int MessageBox(LPCTSTR lpszText,LPCTSTR lpszCaption=NULL,UINT nType=MB_OK);
         注:MessageBox只能用于控件,对话框,窗口等一些窗口类中.lpszCaption为对话框标            题,NULL时缺省,lpszText为显示的字符串,nIDHelp表示上下文帮助ID号,nType表示图标类            型以及所包含的MBYESNOCANCEL等.

    CWnd *m_picture=GetDlgItem(IDC_STATIC1);
    CDC *m_pdc=m_picture->GetDC();
   
1.在静态控件中显示文字:
        m_stat.Format("%d%%",0);
GetDlgItem(IDC_STATIC1)->SetWindowText(m_stat);
给静态控件映射CString类的m_stat成员
2.微调控件成员函数
       CWnd*SetBuddy(CWnd *pWndBuddy) const;//设置伙伴控件,参数为伙伴控件句柄.
                如:m_pin.SetBuddy(GetDlgItem(IDC_EDIT1))
       void SetRange(int nLower,int nUpper); //设置数值变化范围
       int SetPos(int nPos);
       int GetPos() const;           //用来设置或获取当前值
给控件映射CSpinButtonCtrl类型变量m_pin
3.进度控件
       void SetRange(int nLover,int nUpper);//设置范围
       int SetStep(int Step);               //设置步长
       void StepIt();                       //增加一个步长,同时填充一个色块
       int GetPos();                        //返回当前值
       int SetPos(int nPos);                //填充色块
添加CProgressCtrl变量m_prog
4.滑块控件
       void SetRange(int nMin ,int nMax,BOOL bRedraw=FALSE)
       void GetRange(int &nmin,int &nMax);//设置或获得范围
       void SetSelection(int nMin,int nMax)
       void GetSelection(int &nMIn,int &nMax); //设置或获得建议区间的最小下限值和最大上限值
       void SetTicFreq(int );//设置段长
       void SetPos(int nPos)
       int GetPos();
映射CSliderCtrl类型成员m_slid;
给控件添加消息处理函数     消息WM_HSCROLL或WM_VSCROLL :
           void CText3Dlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
用于测试控件ID,由此区分不同控件的WM_HSCROLL消息:
           if(pScorllBar->GetDlgCtrlID()==IDC_SLID) m_edit.Format("%d",m_sild.GetPos());
5.编辑控件
       口令设置:void SetPasswordChar(TCHAR ch);//ch表示口令字符,ch=0时显示实际字符,默认"*"
       CEdit::SetSel,CEdit::GetSel,CEdit::ReplaceSel
       void SetMargins(UINT nLeft,UINT nRight);   //设置边距
       通知消息:
           EN_CHANGE,EN_HSCROLL,EN_KILLFOCUS,EN_MAXTEXT,EN_SETFOCUS,EN_UPDATE,EN_VSCROLL
       SetWindowText;GetWindowText;
6.日期时间控件
    一. COleDateTime类常用成员函数:
        int SetDateTime(int nYear,int nMonth,int nday,int nHour, int nmin,int nSec);
        int SetTime(int nHour,int nMin,int nSec);
        int SetDate(int nYear,int nMonth,int nDay);
        int GetYear,int GetMonth,int GetDay(),GetHour(),GetMinute(),GetSecond()
    二.日期时间控件常用成员函数
        SetRange(ColeDateTime *,ColeDateTime*);   //设置范围,上下限
                    如: COleDateTime min,max;
                         min.Setdate(1995,1,1); max.SetDate(2005,1,1);
                         m_mydate.SetRange(&min,&max);
        SetTime(COleDateTime time);
        GetTime(COleDateTime time);
7.图片控件
    控件和CBitmap对象常用的成员函数:
        HBITMAP SetBitmap(HBITMAP hBitmap);//把位图与图片控件联系起来
        HBITMAP GetBitmap();//获得当前控件中位图的指针
        BOOL LoadBitmap(UINT nIDResourse);//把由nIDRESOURCE所标志的位图载入内存,并连接到                                            CBitmap对象上
        BOOL DeleteObject();//其实本函数对所有对象都有用,从内存中释放对象所占的内存空间

图片列表CImageList类:
     图片列表常用成员函数:
        BOOL Create(int cx,int cy,UINT nFlag,int nInitial,int nGrow);
               //创建列表.cx,xy为图片宽度和高度;nFlag为列表类型;nInitial为最初包含图象个                 数;nGrow限定一次Add()能增加的图象个数
        BOOL Create(UINT nBitmapID,it cx,int Grow,COLORREF crMask);
        int GetImageCount();//列表中图象个数
        COLORREF SetBKColor(COLORREF cr);//设置背景色
        int Add(CBitmap *pbmImage,COLORREF crMask);
        int Add(HICON hIcon);
        BOOL Remove(int nImage);
        BOOL DRAW(CDC *pdc,int nImage,POINT pt,UINT nStype);
例:
BOOL CFile6Dlg::OnInitDialog()
{

        ......

// TODO: Add extra initialization here
m_list.Create(48,48,NULL,1,1); //用Creat()函数创建一个图象列表
m_bitmap.LoadBitmap(IDB_BITMAP1);
m_list.Add(&m_bitmap,(COLORREF)0xfffff);
              //先用LoadBitmap()把图象载如内存,再把它Add()到列表中
m_bitmap.DeleteObject();//为再次装载图象,应该先释放
m_bitmap.LoadBitmap(IDB_BITMAP2);
m_list.Add(&m_bitmap,(COLORREF)0xfffff);
m_bitmap.DeleteObject();
m_bitmap.LoadBitmap(IDB_BITMAP3);
m_list.Add(&m_bitmap,(COLORREF)0xfffff);
m_bitmap.DeleteObject();
return TRUE; // return TRUE unless you set the focus to a control
}
       
void CFile6Dlg::OnButton1()
{
//把ID标志为IDC_STATIC1的图片框作为输出图象的目的地
CWnd *m_picture=GetDlgItem(IDC_STATIC1);
CDC *m_pdc=m_picture->GetDC();
//使指针m_picture标志图片控件,把输出设备上下文设置为图片控件
CPoint m_point(0,0);
static int count=0;
int m=m_list.GetImageCount();
m_list.Draw(m_pdc,count%m,m_point,ILD_NORMAL);
           //在图片框绘制索引为count%m的图象
count++;

}

8.树形控件
        UINT GetCount(); //返回控件中全部项目的总个数
        CImageList *SetImageList(CImageLIst *pImageList,int nImageListType);
              //把图象列表关联到树形控件使得控件内可以显示图象列表的图象.nImageListtype为图                象类型:TVSILNORMAL为一般图象,TVSIL_STATE类型是用户定制的.一般用前者.
        HTREEITEM GetChildItem(HTREEITEM hItem);
              //hItem是某个项目的句柄,本函数返回该项目子项目的句柄,用来访问项目的下级项目
        HTREEITEM GetNextSiblingItem(HTREEITEM hItem);
        HTREEITEM GetPrevSiblingItem(HTREEITEM hItem);
              //返回hItem下一个或上一个兄弟项目的句柄
        HTREEITEM GetParentItem(HTREEITEM hItem);
              //返回hItem的上一级父项目的句柄
        HTREEITEM GetRootItem();
              //返回顶层项目的句柄.用来访问一个项目的根级项目
        BOOL GetItemImage(HTREEITEM hItem ,int &nImage,int &nselectiImage);
              //返回hItem项目的图象序号.nImage是该项目不被选中时使用的图象序号,nSelectImage
        CString GetItemText(HTREEITEM hItem);
              //从hItem项目中获取项目的文本
        CEdit *GetEditControl();
              //当用户就地编辑时,出现内置文本编辑框,函数返回该编辑框的指针
        HTREEITEM InseItem(LPCTSTR lpszItem,int nImage,int nSelectImage,HTREEITEM                                 hParent=TVI_ROOT,HTREEITEM hInsertAfter=TVI_LAST);
              //把一个新项目插入到树项目中.
        BOOL DeleteItem(HTREEITEM hItem);   
        BOOL Expand(HTREEITEM hItem,UINT nCode);
              //展开或折叠hItem指定的项目,nCode值:TVE_EXPAND展开,TVE_COLLAPSE折叠
        BOOL SetItemText(HTREEITEM hItem,LPCTSTR lpszItem);
              //用字符串lpszItem的值去替换hItem项目中的项目字符串
        HTREEITEM GetSelectedItem()
              //返回选中的项目
        添加CTreeCtrl类型m_tree;
       
9.列表控件
     列表控件数据结构:LV_COLUMN和LV_ITEM
     常用成员函数:
        CImageList *SetImageList(CImageList *pImageList,int nImageList);
              //关联图象列表.一个列表控件可关联两个图象列表nImageList为LVSIL_NORMAL时用与大                图标方式,为LVSIL_MALL时用于小图标,列表,报表.
        int InsetColumn(int nCol,const LV_COLUMN *pColumn);
              //用来插入一个列标题.
        int InsertItem(const LV_ITEM *pItem);
              //插入项目,一般用于添加第0行信息而非其他行信息
        BOOL SetItemText(int nItem,int nSubItem,LPTSTR lpszText);
              //把项目文本插入到第nItem行,第nSubItem列.
        int GetItemCount();
              //获取项目个数(行数)
        CString GetItemText(int nItem,int nSubItem);
              //获取项目文本
        BOOL DeleteItem(int nItem);
              //删除第nItem行项目
        BOOL DeleteAllItem();
        int GetNextItem(int nItem,int nFlag);     
              //查找并返回某些项的序号
        setWindowLong,GetWindowLong;
       

10.ActiveX控件

(二)view篇
CHtmlView类:
        GoBack(),GoForward(),Navigate(),Navigate2(),GoHome(),Refresh(),Stop();
        GetXX();
        SetXX();
    


CWnd类:
BOOL Attach(HWND hWndNew);
// Window tree access
int GetDlgCtrlID() const;
int SetDlgCtrlID(int nID);
   // get and set window ID, for child windows only
CWnd* GetDlgItem(int nID) const;
   // get immediate child with given ID
void GetDlgItem(int nID, HWND* phWnd) const;
   // as above, but returns HWND
CWnd* GetDescendantWindow(int nID, BOOL bOnlyPerm = FALSE) const;
   // like GetDlgItem but recursive
void SendMessageToDescendants(UINT message, WPARAM wParam = 0,
   LPARAM lParam = 0, BOOL bDeep = TRUE, BOOL bOnlyPerm = FALSE);
CFrameWnd* GetParentFrame() const;
CWnd* GetTopLevelParent() const;
CWnd* GetTopLevelOwner() const;
CWnd* GetParentOwner() const;
CFrameWnd* GetTopLevelFrame() const;
static CWnd* PASCAL GetSafeOwner(CWnd* pParent = NULL, HWND* pWndTop = NULL);

MCIWnd窗口类:
        if(!MCIWndRegisterClass())
   return FALSE;
CWnd tt;
HWND m_hAVI;
m_hAVI=MCIWndCreate(NULL,AfxGetInstanceHandle(),WS_VISIBLE|WS_POPUP,NULL);
tt.Attach(m_hAVI);
tt.MoveWindow(300,200,200,200,TRUE);
if(m_hAVI==NULL)
   return FALSE;
const CString filename="c://1.mp3";
if(filename.GetLength()>0)
{
   MCIWndOpen(m_hAVI,(LPCSTR)filename,0);
   if(MCIWndUseTime(m_hAVI)!=0)
    return FALSE;
   long PlayTime=MCIWndGetLength(m_hAVI);
   MCIWndPlay(m_hAVI);
   ::Sleep(PlayTime);
   MCIWndDestroy(m_hAVI);
}

::Sleep(PlayTime);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值