关于 过时的 蛋疼的 MFC + DataGrid 显示设置

MFC中对话框工程下Datagrid控件实现分页      自己太傻太天真,开始自己的思路一直停留在如何在datagrid这个控件上面下功夫,直到谷歌度娘了半天,发现了极具历史性意义的一篇博文,才得以把问题解决,此乃最为严重的一场血案——《血案四》特此鸣谢资料一:http://hi.baidu.com/ast%D0%A1%D7%E9/blog/item/5d3785cfad873436f8dc6133.html背景:1、用VC操作数据 阅读详情

由于MFC 已经过时了。。DataGrid的帮助文档 找不到。。。查了很多资料没见到有对于C++ MFC DataGrid的 API (本人比较蠢。。在MSDN上居然找不到,也许是关键词错了,望懂的人能帮忙指导一下 (  0  .  0 ))

一下是自己的一些小总结:


1、 DataGrid 控件自身就支持滚动查看数据,所以别再跟着C# 啥的。。设置参数的。。PS :自带滚动,但不带上下翻页


2、对于有些同学想实现的鼠标点击DataGrid 中的某个数据,被选中的是整一行的功能  至少显示出来的效果是这样,,但还是能获取到 对应的列的 
      可以通过 该语句实现  m_grid.SetMarqueeStyle(0x3);      

     PS:m_grid是自己定义的CDataGrid对象。。 当然这只是笔者自己用的 datagrid类的功能 具体 .h 文件 .cpp文件见附件


关于 MFC 显示新的对话框的一些总结:


在显示自己新建的对话框时,发现,Tab+Alt能切过去,但在任务栏中并没显示该对话框, PS :我是在主对话框的 初始化函数中新建对话框的

可以通过 该语句实现 在任务栏中显示对话框 CWnd::ModifyStyleEx(NULL, WS_EX_APPWINDOW);  这个函数在MSDN中我还是查到了。。ps 用函数可使每个对话框都显示在任务栏。当然若是想隐藏的话只需改动参数即可,,MSDN上都有


头文件 

#if !defined(AFX_DATAGRID_H__33AD90AC_2A60_4D2B_B4DF_24F2761962F0__INCLUDED_)
#define AFX_DATAGRID_H__33AD90AC_2A60_4D2B_B4DF_24F2761962F0__INCLUDED_


#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++


// NOTE: Do not modify the contents of this file.  If this class is regenerated by
//  Microsoft Visual C++, your modifications will be overwritten.


/////////////////////////////////////////////////////////////////////////////
// CDataGrid wrapper class


class CDataGrid : public CWnd
{
protected:
DECLARE_DYNCREATE(CDataGrid)
public:
CLSID const& GetClsid()
{
static CLSID const clsid
= { 0xcde57a43, 0x8b86, 0x11d0, { 0xb3, 0xc6, 0x0, 0xa0, 0xc9, 0xa, 0xea, 0x82 } };
return clsid;
}
virtual BOOL Create(LPCTSTR lpszClassName,
LPCTSTR lpszWindowName, DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd, UINT nID,
CCreateContext* pContext = NULL)
{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID); }


BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle,
const RECT& rect, CWnd* pParentWnd, UINT nID,
CFile* pPersist = NULL, BOOL bStorage = FALSE,
BSTR bstrLicKey = NULL)
{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,
pPersist, bStorage, bstrLicKey); }


// Attributes
public:


// Operations
public:
long GetAddNewMode();
BOOL GetAllowAddNew();
void SetAllowAddNew(BOOL bNewValue);
BOOL GetAllowArrows();
void SetAllowArrows(BOOL bNewValue);
BOOL GetAllowDelete();
void SetAllowDelete(BOOL bNewValue);
BOOL GetAllowRowSizing();
void SetAllowRowSizing(BOOL bNewValue);
BOOL GetAllowUpdate();
void SetAllowUpdate(BOOL bNewValue);
long GetAppearance();
void SetAppearance(long nNewValue);
long GetApproxCount();
unsigned long GetBackColor();
void SetBackColor(unsigned long newValue);
VARIANT GetBookmark();
void SetBookmark(const VARIANT& newValue);
long GetBorderStyle();
void SetBorderStyle(long nNewValue);
CString GetCaption();
void SetCaption(LPCTSTR lpszNewValue);
short GetCol();
void SetCol(short nNewValue);
BOOL GetColumnHeaders();
void SetColumnHeaders(BOOL bNewValue);
BOOL GetCurrentCellModified();
void SetCurrentCellModified(BOOL bNewValue);
BOOL GetCurrentCellVisible();
void SetCurrentCellVisible(BOOL bNewValue);
BOOL GetDataChanged();
void SetDataChanged(BOOL bNewValue);
LPUNKNOWN GetDataSource();
void SetRefDataSource(LPUNKNOWN newValue);
CString GetDataMember();
void SetDataMember(LPCTSTR lpszNewValue);
float GetDefColWidth();
void SetDefColWidth(float newValue);
BOOL GetEditActive();
void SetEditActive(BOOL bNewValue);
BOOL GetEnabled();
void SetEnabled(BOOL bNewValue);
CString GetErrorText();
LPDISPATCH GetFont();
void SetRefFont(LPDISPATCH newValue);
unsigned long GetForeColor();
void SetForeColor(unsigned long newValue);
VARIANT GetFirstRow();
void SetFirstRow(const VARIANT& newValue);
LPDISPATCH GetHeadFont();
void SetRefHeadFont(LPDISPATCH newValue);
float GetHeadLines();
void SetHeadLines(float newValue);
long GetHWnd();
long GetHWndEditor();
short GetLeftCol();
void SetLeftCol(short nNewValue);
long GetMarqueeStyle();
void SetMarqueeStyle(long nNewValue);
BOOL GetRecordSelectors();
void SetRecordSelectors(BOOL bNewValue);
BOOL GetRightToLeft();
void SetRightToLeft(BOOL bNewValue);
short GetRow();
void SetRow(short nNewValue);
long GetRowDividerStyle();
void SetRowDividerStyle(long nNewValue);
float GetRowHeight();
void SetRowHeight(float newValue);
long GetScrollBars();
void SetScrollBars(long nNewValue);
short GetSelEndCol();
void SetSelEndCol(short nNewValue);
long GetSelLength();
void SetSelLength(long nNewValue);
long GetSelStart();
void SetSelStart(long nNewValue);
short GetSelStartCol();
void SetSelStartCol(short nNewValue);
CString GetSelText();
void SetSelText(LPCTSTR lpszNewValue);
short GetSplit();
void SetSplit(short nNewValue);
BOOL GetTabAcrossSplits();
void SetTabAcrossSplits(BOOL bNewValue);
long GetTabAction();
void SetTabAction(long nNewValue);
CString GetText();
void SetText(LPCTSTR lpszNewValue);
short GetVisibleCols();
short GetVisibleRows();
BOOL GetWrapCellPointer();
void SetWrapCellPointer(BOOL bNewValue);
LPDISPATCH GetDataFormats();
LPDISPATCH CaptureImage();
void ClearSelCols();
void ClearFields();
short ColContaining(float X);
LPDISPATCH GetColumns();
VARIANT GetBookmark(long RowNum);
void HoldFields();
void ReBind();
void Refresh();
VARIANT RowBookmark(short RowNum);
short RowContaining(float Y);
float RowTop(short RowNum);
void Scroll(long Cols, long Rows);
LPDISPATCH GetSelBookmarks();
short SplitContaining(float X, float Y);
LPDISPATCH GetSplits();
};


//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.


#endif // !defined(AFX_DATAGRID_H__33AD90AC_2A60_4D2B_B4DF_24F2761962F0__INCLUDED_)




.cpp文件


// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++


// NOTE: Do not modify the contents of this file.  If this class is regenerated by
//  Microsoft Visual C++, your modifications will be overwritten.




#include "stdafx.h"
#include "datagrid.h"


/////////////////////////////////////////////////////////////////////////////
// CDataGrid


IMPLEMENT_DYNCREATE(CDataGrid, CWnd)


/////////////////////////////////////////////////////////////////////////////
// CDataGrid properties


/////////////////////////////////////////////////////////////////////////////
// CDataGrid operations


long CDataGrid::GetAddNewMode()
{
long result;
InvokeHelper(0x1, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}


BOOL CDataGrid::GetAllowAddNew()
{
BOOL result;
InvokeHelper(0x2, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}


void CDataGrid::SetAllowAddNew(BOOL bNewValue)
{
static BYTE parms[] =
VTS_BOOL;
InvokeHelper(0x2, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
bNewValue);
}


BOOL CDataGrid::GetAllowArrows()
{
BOOL result;
InvokeHelper(0x3, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}


void CDataGrid::SetAllowArrows(BOOL bNewValue)
{
static BYTE parms[] =
VTS_BOOL;
InvokeHelper(0x3, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
bNewValue);
}


BOOL CDataGrid::GetAllowDelete()
{
BOOL result;
InvokeHelper(0x4, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}


void CDataGrid::SetAllowDelete(BOOL bNewValue)
{
static BYTE parms[] =
VTS_BOOL;
InvokeHelper(0x4, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
bNewValue);
}


BOOL CDataGrid::GetAllowRowSizing()
{
BOOL result;
InvokeHelper(0x5, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}


void CDataGrid::SetAllowRowSizing(BOOL bNewValue)
{
static BYTE parms[] =
VTS_BOOL;
InvokeHelper(0x5, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
bNewValue);
}


BOOL CDataGrid::GetAllowUpdate()
{
BOOL result;
InvokeHelper(0x6, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}


void CDataGrid::SetAllowUpdate(BOOL bNewValue)
{
static BYTE parms[] =
VTS_BOOL;
InvokeHelper(0x6, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
bNewValue);
}


long CDataGrid::GetAppearance()
{
long result;
InvokeHelper(DISPID_APPEARANCE, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}


void CDataGrid::SetAppearance(long nNewValue)
{
static BYTE parms[] =
VTS_I4;
InvokeHelper(DISPID_APPEARANCE, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
nNewValue);
}


long CDataGrid::GetApproxCount()
{
long result;
InvokeHelper(0x8, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}


unsigned long CDataGrid::GetBackColor()
{
unsigned long result;
InvokeHelper(DISPID_BACKCOLOR, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}


void CDataGrid::SetBackColor(unsigned long newValue)
{
static BYTE parms[] =
VTS_I4;
InvokeHelper(DISPID_BACKCOLOR, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
newValue);
}


VARIANT CDataGrid::GetBookmark()
{
VARIANT result;
InvokeHelper(0x9, DISPATCH_PROPERTYGET, VT_VARIANT, (void*)&result, NULL);
return result;
}


void CDataGrid::SetBookmark(const VARIANT& newValue)
{
static BYTE parms[] =
VTS_VARIANT;
InvokeHelper(0x9, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
&newValue);
}


long CDataGrid::GetBorderStyle()
{
long result;
InvokeHelper(DISPID_BORDERSTYLE, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}


void CDataGrid::SetBorderStyle(long nNewValue)
{
static BYTE parms[] =
VTS_I4;
InvokeHelper(DISPID_BORDERSTYLE, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
nNewValue);
}


CString CDataGrid::GetCaption()
{
CString result;
InvokeHelper(DISPID_CAPTION, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
return result;
}


void CDataGrid::SetCaption(LPCTSTR lpszNewValue)
{
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(DISPID_CAPTION, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
lpszNewValue);
}


short CDataGrid::GetCol()
{
short result;
InvokeHelper(0xa, DISPATCH_PROPERTYGET, VT_I2, (void*)&result, NULL);
return result;
}


void CDataGrid::SetCol(short nNewValue)
{
static BYTE parms[] =
VTS_I2;
InvokeHelper(0xa, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
nNewValue);
}


BOOL CDataGrid::GetColumnHeaders()
{
BOOL result;
InvokeHelper(0xb, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}


void CDataGrid::SetColumnHeaders(BOOL bNewValue)
{
static BYTE parms[] =
VTS_BOOL;
InvokeHelper(0xb, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
bNewValue);
}


BOOL CDataGrid::GetCurrentCellModified()
{
BOOL result;
InvokeHelper(0xc, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}


void CDataGrid::SetCurrentCellModified(BOOL bNewValue)
{
static BYTE parms[] =
VTS_BOOL;
InvokeHelper(0xc, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
bNewValue);
}


BOOL CDataGrid::GetCurrentCellVisible()
{
BOOL result;
InvokeHelper(0xd, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}


void CDataGrid::SetCurrentCellVisible(BOOL bNewValue)
{
static BYTE parms[] =
VTS_BOOL;
InvokeHelper(0xd, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
bNewValue);
}


BOOL CDataGrid::GetDataChanged()
{
BOOL result;
InvokeHelper(0xe, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}


void CDataGrid::SetDataChanged(BOOL bNewValue)
{
static BYTE parms[] =
VTS_BOOL;
InvokeHelper(0xe, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
bNewValue);
}


LPUNKNOWN CDataGrid::GetDataSource()
{
LPUNKNOWN result;
InvokeHelper(0x2a, DISPATCH_PROPERTYGET, VT_UNKNOWN, (void*)&result, NULL);
return result;
}


void CDataGrid::SetRefDataSource(LPUNKNOWN newValue)
{
static BYTE parms[] =
VTS_UNKNOWN;
InvokeHelper(0x2a, DISPATCH_PROPERTYPUTREF, VT_EMPTY, NULL, parms,
newValue);
}


CString CDataGrid::GetDataMember()
{
CString result;
InvokeHelper(0x2b, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
return result;
}


void CDataGrid::SetDataMember(LPCTSTR lpszNewValue)
{
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x2b, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
lpszNewValue);
}


float CDataGrid::GetDefColWidth()
{
float result;
InvokeHelper(0x10, DISPATCH_PROPERTYGET, VT_R4, (void*)&result, NULL);
return result;
}


void CDataGrid::SetDefColWidth(float newValue)
{
static BYTE parms[] =
VTS_R4;
InvokeHelper(0x10, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
newValue);
}


BOOL CDataGrid::GetEditActive()
{
BOOL result;
InvokeHelper(0x11, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}


void CDataGrid::SetEditActive(BOOL bNewValue)
{
static BYTE parms[] =
VTS_BOOL;
InvokeHelper(0x11, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
bNewValue);
}


BOOL CDataGrid::GetEnabled()
{
BOOL result;
InvokeHelper(DISPID_ENABLED, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}


void CDataGrid::SetEnabled(BOOL bNewValue)
{
static BYTE parms[] =
VTS_BOOL;
InvokeHelper(DISPID_ENABLED, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
bNewValue);
}


CString CDataGrid::GetErrorText()
{
CString result;
InvokeHelper(0x12, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
return result;
}


LPDISPATCH CDataGrid::GetFont()
{
LPDISPATCH result;
InvokeHelper(DISPID_FONT, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&result, NULL);
return result;
}


void CDataGrid::SetRefFont(LPDISPATCH newValue)
{
static BYTE parms[] =
VTS_DISPATCH;
InvokeHelper(DISPID_FONT, DISPATCH_PROPERTYPUTREF, VT_EMPTY, NULL, parms,
newValue);
}


unsigned long CDataGrid::GetForeColor()
{
unsigned long result;
InvokeHelper(DISPID_FORECOLOR, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}


void CDataGrid::SetForeColor(unsigned long newValue)
{
static BYTE parms[] =
VTS_I4;
InvokeHelper(DISPID_FORECOLOR, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
newValue);
}


VARIANT CDataGrid::GetFirstRow()
{
VARIANT result;
InvokeHelper(0x13, DISPATCH_PROPERTYGET, VT_VARIANT, (void*)&result, NULL);
return result;
}


void CDataGrid::SetFirstRow(const VARIANT& newValue)
{
static BYTE parms[] =
VTS_VARIANT;
InvokeHelper(0x13, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
&newValue);
}


LPDISPATCH CDataGrid::GetHeadFont()
{
LPDISPATCH result;
InvokeHelper(0x14, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&result, NULL);
return result;
}


void CDataGrid::SetRefHeadFont(LPDISPATCH newValue)
{
static BYTE parms[] =
VTS_DISPATCH;
InvokeHelper(0x14, DISPATCH_PROPERTYPUTREF, VT_EMPTY, NULL, parms,
newValue);
}


float CDataGrid::GetHeadLines()
{
float result;
InvokeHelper(0x15, DISPATCH_PROPERTYGET, VT_R4, (void*)&result, NULL);
return result;
}


void CDataGrid::SetHeadLines(float newValue)
{
static BYTE parms[] =
VTS_R4;
InvokeHelper(0x15, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
newValue);
}


long CDataGrid::GetHWnd()
{
long result;
InvokeHelper(DISPID_HWND, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}


long CDataGrid::GetHWndEditor()
{
long result;
InvokeHelper(0x16, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}


short CDataGrid::GetLeftCol()
{
short result;
InvokeHelper(0x17, DISPATCH_PROPERTYGET, VT_I2, (void*)&result, NULL);
return result;
}


void CDataGrid::SetLeftCol(short nNewValue)
{
static BYTE parms[] =
VTS_I2;
InvokeHelper(0x17, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
nNewValue);
}


long CDataGrid::GetMarqueeStyle()
{
long result;
InvokeHelper(0x19, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}


void CDataGrid::SetMarqueeStyle(long nNewValue)
{
static BYTE parms[] =
VTS_I4;
InvokeHelper(0x19, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
nNewValue);
}


BOOL CDataGrid::GetRecordSelectors()
{
BOOL result;
InvokeHelper(0x1a, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}


void CDataGrid::SetRecordSelectors(BOOL bNewValue)
{
static BYTE parms[] =
VTS_BOOL;
InvokeHelper(0x1a, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
bNewValue);
}


BOOL CDataGrid::GetRightToLeft()
{
BOOL result;
InvokeHelper(0xfffffd9d, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}


void CDataGrid::SetRightToLeft(BOOL bNewValue)
{
static BYTE parms[] =
VTS_BOOL;
InvokeHelper(0xfffffd9d, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
bNewValue);
}


short CDataGrid::GetRow()
{
short result;
InvokeHelper(0x1b, DISPATCH_PROPERTYGET, VT_I2, (void*)&result, NULL);
return result;
}


void CDataGrid::SetRow(short nNewValue)
{
static BYTE parms[] =
VTS_I2;
InvokeHelper(0x1b, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
nNewValue);
}


long CDataGrid::GetRowDividerStyle()
{
long result;
InvokeHelper(0x1c, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}


void CDataGrid::SetRowDividerStyle(long nNewValue)
{
static BYTE parms[] =
VTS_I4;
InvokeHelper(0x1c, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
nNewValue);
}


float CDataGrid::GetRowHeight()
{
float result;
InvokeHelper(0x1d, DISPATCH_PROPERTYGET, VT_R4, (void*)&result, NULL);
return result;
}


void CDataGrid::SetRowHeight(float newValue)
{
static BYTE parms[] =
VTS_R4;
InvokeHelper(0x1d, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
newValue);
}


long CDataGrid::GetScrollBars()
{
long result;
InvokeHelper(0xfffffde9, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}


void CDataGrid::SetScrollBars(long nNewValue)
{
static BYTE parms[] =
VTS_I4;
InvokeHelper(0xfffffde9, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
nNewValue);
}


short CDataGrid::GetSelEndCol()
{
short result;
InvokeHelper(0x1f, DISPATCH_PROPERTYGET, VT_I2, (void*)&result, NULL);
return result;
}


void CDataGrid::SetSelEndCol(short nNewValue)
{
static BYTE parms[] =
VTS_I2;
InvokeHelper(0x1f, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
nNewValue);
}


long CDataGrid::GetSelLength()
{
long result;
InvokeHelper(0xfffffddc, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}


void CDataGrid::SetSelLength(long nNewValue)
{
static BYTE parms[] =
VTS_I4;
InvokeHelper(0xfffffddc, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
nNewValue);
}


long CDataGrid::GetSelStart()
{
long result;
InvokeHelper(0xfffffddd, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}


void CDataGrid::SetSelStart(long nNewValue)
{
static BYTE parms[] =
VTS_I4;
InvokeHelper(0xfffffddd, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
nNewValue);
}


short CDataGrid::GetSelStartCol()
{
short result;
InvokeHelper(0x22, DISPATCH_PROPERTYGET, VT_I2, (void*)&result, NULL);
return result;
}


void CDataGrid::SetSelStartCol(short nNewValue)
{
static BYTE parms[] =
VTS_I2;
InvokeHelper(0x22, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
nNewValue);
}


CString CDataGrid::GetSelText()
{
CString result;
InvokeHelper(0xfffffdde, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
return result;
}


void CDataGrid::SetSelText(LPCTSTR lpszNewValue)
{
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0xfffffdde, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
lpszNewValue);
}


short CDataGrid::GetSplit()
{
short result;
InvokeHelper(0x24, DISPATCH_PROPERTYGET, VT_I2, (void*)&result, NULL);
return result;
}


void CDataGrid::SetSplit(short nNewValue)
{
static BYTE parms[] =
VTS_I2;
InvokeHelper(0x24, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
nNewValue);
}


BOOL CDataGrid::GetTabAcrossSplits()
{
BOOL result;
InvokeHelper(0x25, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}


void CDataGrid::SetTabAcrossSplits(BOOL bNewValue)
{
static BYTE parms[] =
VTS_BOOL;
InvokeHelper(0x25, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
bNewValue);
}


long CDataGrid::GetTabAction()
{
long result;
InvokeHelper(0x26, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}


void CDataGrid::SetTabAction(long nNewValue)
{
static BYTE parms[] =
VTS_I4;
InvokeHelper(0x26, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
nNewValue);
}


CString CDataGrid::GetText()
{
CString result;
InvokeHelper(0x0, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
return result;
}


void CDataGrid::SetText(LPCTSTR lpszNewValue)
{
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x0, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
lpszNewValue);
}


short CDataGrid::GetVisibleCols()
{
short result;
InvokeHelper(0x27, DISPATCH_PROPERTYGET, VT_I2, (void*)&result, NULL);
return result;
}


short CDataGrid::GetVisibleRows()
{
short result;
InvokeHelper(0x28, DISPATCH_PROPERTYGET, VT_I2, (void*)&result, NULL);
return result;
}


BOOL CDataGrid::GetWrapCellPointer()
{
BOOL result;
InvokeHelper(0x29, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}


void CDataGrid::SetWrapCellPointer(BOOL bNewValue)
{
static BYTE parms[] =
VTS_BOOL;
InvokeHelper(0x29, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
bNewValue);
}


LPDISPATCH CDataGrid::GetDataFormats()
{
LPDISPATCH result;
InvokeHelper(0x2c, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&result, NULL);
return result;
}


LPDISPATCH CDataGrid::CaptureImage()
{
LPDISPATCH result;
InvokeHelper(0x65, DISPATCH_METHOD, VT_DISPATCH, (void*)&result, NULL);
return result;
}


void CDataGrid::ClearSelCols()
{
InvokeHelper(0x66, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}


void CDataGrid::ClearFields()
{
InvokeHelper(0x67, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}


short CDataGrid::ColContaining(float X)
{
short result;
static BYTE parms[] =
VTS_R4;
InvokeHelper(0x68, DISPATCH_METHOD, VT_I2, (void*)&result, parms,
X);
return result;
}


LPDISPATCH CDataGrid::GetColumns()
{
LPDISPATCH result;
InvokeHelper(0x69, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&result, NULL);
return result;
}


VARIANT CDataGrid::GetBookmark(long RowNum)
{
VARIANT result;
static BYTE parms[] =
VTS_I4;
InvokeHelper(0x6a, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
RowNum);
return result;
}


void CDataGrid::HoldFields()
{
InvokeHelper(0x6b, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}


void CDataGrid::ReBind()
{
InvokeHelper(0x6c, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}


void CDataGrid::Refresh()
{
InvokeHelper(DISPID_REFRESH, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}


VARIANT CDataGrid::RowBookmark(short RowNum)
{
VARIANT result;
static BYTE parms[] =
VTS_I2;
InvokeHelper(0x6d, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
RowNum);
return result;
}


short CDataGrid::RowContaining(float Y)
{
short result;
static BYTE parms[] =
VTS_R4;
InvokeHelper(0x6e, DISPATCH_METHOD, VT_I2, (void*)&result, parms,
Y);
return result;
}


float CDataGrid::RowTop(short RowNum)
{
float result;
static BYTE parms[] =
VTS_I2;
InvokeHelper(0x6f, DISPATCH_METHOD, VT_R4, (void*)&result, parms,
RowNum);
return result;
}


void CDataGrid::Scroll(long Cols, long Rows)
{
static BYTE parms[] =
VTS_I4 VTS_I4;
InvokeHelper(0xdc, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
Cols, Rows);
}


LPDISPATCH CDataGrid::GetSelBookmarks()
{
LPDISPATCH result;
InvokeHelper(0x71, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&result, NULL);
return result;
}


short CDataGrid::SplitContaining(float X, float Y)
{
short result;
static BYTE parms[] =
VTS_R4 VTS_R4;
InvokeHelper(0x72, DISPATCH_METHOD, VT_I2, (void*)&result, parms,
X, Y);
return result;
}


LPDISPATCH CDataGrid::GetSplits()
{
LPDISPATCH result;
InvokeHelper(0x73, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&result, NULL);
return result;
}

VC中ADO连接数据库,如何使用Datagrid显示的问题 这两天闲着无事,写了一个MFC下对话框工程的查询小应用软件,由此引发了一系列血案:《血案一》问题:如题最终解决方法:1.加入一个DataGrid的。 2.添加变量CDataGrid   m_grid; 3.声明一个链接_ConnectionPtr   m_pCnt; 4.声明一个记录集_RecordSetPtr   m_pRes; m_pCnt.CreateInstance(..... 阅读详情

相关推荐

MFC DataGrid控件用法详解

对MFC中的DataGrid控件的用法进行了一些总结

vb.net中datagridview的鼠标事件_【自学C#】|| 笔记 45 数据表格(DataGridView)控件的应用案例...

一、数据表格(DataGridView)控件的应用案例接下来我们通过一个完整的实例来实现课程信息管理功能的操作,包括查询、修改、删除课程信息的操作。为了简化实例,添加课程信息的操作直接在 SQL Server 数据库中完成。下面分几个步骤完成。1) 创建课程信息表创建课程信息表的 SQL 语句如下。use test;create table cou...

weixin_39541121的博客 852

LPDISPATCH类型的接属性值,方法

为LPDISPATCH类型的接口设定或获取某个属性值,LPDISPATCH类型的接口中执行某个方法

VS2010环境下MFC使用DataGrid绑定数据源以及控件注册问题解决

http://www.cnblogs.com/panweishadow/archive/2013/07/25/3214629.html   参考:http://blog.youkuaiyun.com/fddqfddq/article/details/7874706 详细介绍如何在MFC中使用DataGrid控件实现数据绑定。 1:新建一个MFC应用程序:DataGridDemo    2:选择基于

jmp esp 9652

DataGrid的MFC实现 基于MFC

不使用ActiveX插件实现表格的效果,使用自定义类实现;基于MFC的Datagrid的实现。

从材料到磁场:ANSYS Workbench永磁体仿真全流程解析

本文详细解析了在ANSYS Workbench中进行永磁体仿真的完整流程。从钕铁硼等永磁材料的特性讲起,逐步指导如何在软件中搭建模型、定义关键磁化方向、设置边界条件与网格划分,并解读磁场分布结果。文章旨在帮助工程师掌握静磁场仿真核心技术,为电机、传感器等设备的设计与优化提供精准指导。

weixin_29229989的博客 272

MFC 中的 DataGrid 快把我弄疯了

<br />我用的是微软的DataGrid,但是关于他的资料好少啊??我好多地方都用了它,我现在相对他进行一些操作,但是我该怎么办呢?在网上各种的搜,也没有个结果啊~~~

lustergirl的专栏 593

5种主流触觉传感器对比:GelSight、DIGIT、Taxim、GelSlim和TACTO如何选?

本文深度解析了GelSight、DIGIT、Taxim、GelSlim和TACTO五款主流触觉传感器的技术原理与核心特性。通过对比视觉传感与电学传感两大技术路径,为机器人灵巧抓取、精密检测等应用场景提供清晰的选型决策指南,帮助开发者根据项目需求在分辨率、响应速度、集成度与成本之间找到最佳平衡。

Black的专栏 931

关于 IDispatch 接口的 LPDispatch 属性的实现

文章概要:在我们自己写的自动化组件中,当然你可以把所有的方法都用唯一的一个自动化接口表现出来,但是这样好吗?所有的方法都处于一个层次上,没有适当的分类,显然不是个优秀的组件。好了,下面看看我们如何实现分层次的自动化组件吧。 好象是绕口令一样的标题。呵呵,看看下面的这个例子,我想大家就知道是什么意思了吧。 在脚本语言中,我们经常看到类似这样的语句:obj.Document.Write(...

smallfish6的专栏 1350

如何在OBS中添加实时时间戳:Lua脚本配置教程(附效果展示)

本文详细介绍了如何在OBS中通过Lua脚本配置实时时间戳功能,包括环境准备、脚本获取、安装配置及高级定制。适用于直播和视频录制场景,提供精准回溯和风格自定义,支持多平台适配和性能优化,是专业制作的必备技巧。

day7的博客 1044

高通Sensor Tuning实战:手把手教你用Chromatix生成并打包bin文件(附避坑指南)

本文详细介绍了高通Sensor Tuning的全流程实战,从Chromatix配置到Bin文件加载验证。通过手把手教程,帮助开发者掌握Chromatix工具链的使用,避免常见配置错误,提升调试效率。特别针对kalama等新一代平台,提供经过验证的解决方案和避坑指南。

ios99的博客 483

vs2010操作excel时出现这样一条语句: LPDISPATCH lpDisp; 谈谈这条语句有的作用

参考链接:https://bbs.youkuaiyun.com/topics/391058520 OFFICE支持自动化,所有支持自动化的接口都是LPDISPATCH派生的 你在一个函数里想使用一个对象的属性或方法,总得有类对象或者类对象指针吧,所以你想操作excel,这个lpDisp就是指向接口的指针。 意思就是你要操作excel,所以定义一个指向excel的指针 ...

do_just的博客 1006

C语言编写Picard迭代和牛顿迭代法

为了完成学校计算方法的作业,花了两个多星期将所有实验报告编写出来,看到同桌找代码的辛苦,优快云也没有这类代码,我只是一时兴起,想分享我写的代码与大家共飨,有错误还请多多指正,代码都不难,也是为了让优快云帮我保存下,我辛辛苦苦做出来的,倘若能给别人带来一丝一毫的帮助,我都万分荣幸。 1:什么是Picard迭代 先弄一个满足f(x) = 0的函数将其转化为x= 正在上传… 重新上传 取消 ...

mohenxiang的博客 4699

VC----COM

1.LPDISPATCH是COM编程中一项重大的接口应用,主要负责支持自动化的接口调用,我们在一般性的编程中,主要用它的两个方法:  GetIDsOfNames:传一个字符串给它,它返回ID,这个ID就是你要调用的功能    Invoke:该函数就是通过这个ID调用的。 2. Coinitialize  参数为保留参数,必须为NULL CoInitialize是 Wi

yiziweiyang的专栏 446

MATLAB 控制 E4438C 信号源的研究

通过 MATLAB,我们可以实现对 E4438C 的远程控制,从而实现更高的自动化和可编程性。总结起来,通过使用 MATLAB 和 Instrument Control Toolbox,我们可以轻松地控制 E4438C 信号源并生成各种类型的信号。需要注意的是,以上代码仅为示例,实际应用中可能需要根据具体情况进行更详细的配置和错误处理。此外,MATLAB 还提供了一系列函数和命令,可用于控制 E4438C 信号源的其他功能,如频率调谐、功率设置、调制设置等。您可以根据自己的需求进行相应的配置和控制。

RswtPerl的博客 1014

IgH EtherCAT 从入门到精通:第 2 章 环境搭建与编译安装

环境搭建与编译安装指南 本章详细介绍了搭建IgH EtherCAT Master开发环境的完整流程。内容包括: 硬件要求:支持多种Intel和Realtek网卡的原生驱动,以及通用网卡的generic驱动选项 软件依赖:列出Linux系统下所需的工具链和开发包 源码获取:通过Git克隆官方仓库并切换稳定版本的方法 配置选项:详细解析bootstrap脚本和configure的核心参数,包括路径设置、功能开关和实时框架选项 编译流程:从生成构建系统到最终编译安装的完整步骤 通过本章指导,读者可以完成一个可运行

从事嵌入式linux android驱动开发,拥有全栈能力 480

vs mfc数据与控件绑定错了_DataGridView控件用法一:数据绑定

用DataGridView控件,可以显示和编辑来自多种不同类型的数据源的表格数据。将数据绑定到DataGridView控件非常简单和直观,在大多数情况下,只需设置DataSource属性即可。在绑定到包含多个列表或表的数据源时,只需将DataMember属性设置为指定要绑定的列表或表的字符串即可。一、非绑定模式所谓的非绑定模式就是DataGridView控件显示的数据不是来自于绑定的数据...

weixin_39760295的博客 620

AUTOSAR NvM 实车故障深度剖析:车载存储问题快速定位与工程解决方案

软件配置与代码逻辑无问题时,排查底层驱动与ECU硬件,步骤如下:底层驱动排查:排查Fls/Eep驱动配置,是否适配目标MCU(如TC397、S32K),编程/擦除/读取时序是否合理;检查Fls/Eep驱动错误处理逻辑,是否未处理Flash编程失败、读取错误等异常;验证Flash高速编程模式是否启用,是否能提升写入/读取速度;排查MemIf层配置,是否正确对接NvM与Fls/Eep驱动,是否存在调度延迟。

getusushu的博客 78

VS2010 Win7 64位 C++ MFC DataGrid绑定实例

纠结了几天的DataGrid绑定问题今天终于能跑出来了。我下载别人的代码,都可以跑, 因为我是用VS2010 Win7 64位 的环境来学习 C++ MFC的,网上找的资料大都是VC6.0正面的, 我下载的DataGrid例子都可以跑出来,一到我自己写就出错了。 后来我按照如下方法就可以了。文章最后有实例下载 1:新建一个MFC应用程序:DataGridDemo 2:选择基于对话

fddqfddq的专栏 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

基于MFC对话框的GridfCtrl显示SQL表格

mfc对话框显示表格有那么几种方法:使用微软的CListCtrl控件,使用Joe和chris编写的GridCtrl控件等。GridCtrl更专业些。这款控件出世将近20年,使用也很广泛。但是用于显示SQL表格的帮助文件较少。在网上找到10年前Mazdak写的教程,尝试并实现,对他表示感谢。 Mazdak-Binding MFC Grid to database一、首先介绍GridCtrl应用于简单

小李的专栏 4018

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

关于c++中GetIDsOfNames与Invoke的使用~

最近在学习com接口,和A控件,当中有一个函数得到的值为一个LPDISPATCH指针,所以在这跟大家分享一下,怎么通过LPDISPATCH指针来调用com接口中的函数对象。 首先LPDISPATCH指向的是个com接口对象,我们可以先查到这个指针指向的接口它有哪些参数和方法,比如我这个! 由此可见它的指向的是一个IMXDRAWRESBUF接口,接着我们再查查其中有哪些方法,如下: 发现里面有

iloveyou418的博客 4958

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

mfc grid控件_一个非常优秀的MFC Grid控件

mfc grid控件使用MFC进行开发, 界面编程占用了很大部分的时间. 像Grid这样的控件, MFC并没有提供支持. 使用MFC进行开发,界面编程占用了很大一部分的时间。 像Grid这样的控件,MFC并没有提供支持。 发现了这样一个GridCtrl控件, 非常好用: 发现了这样一个GridCtrl控件,非常好用: http://www.codeproject.com/KB/miscctrl...

cuma2369的博客 1833

IDispatch 接口的 LPDispatch 属性

IFileInfo *fileInfo=NULL; LPDISPATCH lpDisp; HRESULT hr; lpDisp=m_edit.get_FileInfo(); //m_edit-vc的dll控件的变量 hr=lpDisp-> QueryInterface(IID_IDispatch,(void **)&fileInfo); if (FAILE

loveheronly的专栏 1538

VC++ Datagrid应用实例详解系列(1) - 基本功能

本文是DataGrid组件系列之一。 本文主要内容: 用最简单的方法实现了DataGird组件的基本功能。

zxhx的blog 1万+

VC++.NET 开发MFC数据库管理系统全记录[ADODC+DataGrid](2005-6-2)

这几天忙着没时间写Blog 一方面是在做毕业论文 一方面在公司做项目,学着用MFC连接数据库 以前从来没正儿八经地用MFC做过东西 然后上网找了半天,也找不到一篇令我满意的傻瓜式MFC数据库操作教程 所以,没办法 指望不到别人 只好自己摸索 在正式开始用MFC开发DBMS之前,先作几点说明 (1)为什么要用MFC,而不用.Net Framework           几天前我就已经用VB.NET...

weixin_34008933的博客 289
上一篇: VS 2015 +opencv 2.4.13 C++ .dll文件编写及调用
下一篇: 关于Piotr's Computer Vision Matlab Toolbox的各种Mex不存在问题
STAR_RUB
博客等级 码龄10年 2粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值