关于 过时的 蛋疼的 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的实现。

433MHz无线通信

基本概念 工作频率:433.92MHz 调制方式:ASK/OOK,FSK,GFSK 现有遥控与接收器方案中,多数使用ASK/OOK调试方式。ASK即“幅移键控”又称为“振幅键控”,也有称为“开关键控”(通断键控)的,所以又记作OOK(On-Off keyed)信号。ASK是一种相对简单的调制方式。幅移键控(ASK)相当于模拟信号中的调幅,不同的是与载频信号相乘的是二进制数码。幅移就是把频...

沧海孤叶的博客 5万+

MFC 中的 DataGrid 快把我弄疯了

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

lustergirl的专栏 593

matinal:SAP ABAP 关于sftp的发送接收源代码

如果您将目标系统的凭据存储在该 RFC 连接中,您可以安排程序并将其作为后台作业运行:凭据将从 SM59 配置中获取,并且在文件传输期间不会提示您输入它们。这尤其适用于安全问题:您有责任为您的编码添加安全功能,并相应地配置您的系统(例如,保护您的系统免受病毒侵害)。注意:在创建自己的程序时,请特别注意示例代码中以“@CUSTOMER”开头的注释,因为您需要实现自己的逻辑。本说明为您提供示例编码以支持您创建自己的程序。在 STRUST 事务中,您维护了一个 PSE 并导入了您要发送的文件的最终收件人的证书。

matinal 當冬夜漸暖 。公众号:matinal 1333

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

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

smallfish6的专栏 1350

为什么你的PROFINET IRT同步性能不达标?等时模式常见配置误区盘点

本文深入剖析了PROFINET IRT等时模式同步性能不达标的常见原因。文章直击痛点,系统盘点了从硬件兼容性、拓扑组态、过程映像分区分配,到同步OB配置、时序参数调校及带宽管理等关键环节的配置误区,并提供了实用的诊断思路与性能优化清单,帮助工程师精准定位并解决同步抖动、时序混乱等难题。

ujm5678901的博客 457

自己动手写CPU(1)五级流水线及CPU第一条指令ori

自己动手写CPU(1)五级流水线及CPU第一条指令ori 动机 不知为何研一的自由时间突然多起来,可能人一闲下来就容易焦虑吧,hhhhhh。正好之前看到一本《自己动手写CPU》,就按照此书从头实做一遍MIPS指令集的CPU,也当做对大学课程的总结。之前看龙芯杯比赛的代码震惊到我了,想想那堆大佬本科在搞这东西而我本科在瓜瓜地刷分,感叹人之间的差距真的好大。痛定思痛,还是先动手做起来这才能假意安慰自己,我好像也不错。闲言少叙,让我们开始吧! 由于作者提供了各章实现的具体代码,所以该系列博客主要记录我过程中有哪些

谦豫 7079

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

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

do_just的博客 1006

Python 爬虫实战:微博自动化运营工具(点赞 / 转发 / 评论 + 反封号策略)

微博作为中国最大的社交媒体平台之一,拥有庞大的用户群体和丰富的数据资源。通过 Python 爬虫技术,我们可以实现微博的自动化运营,包括点赞、转发、评论等功能,同时采取有效的反封号策略,确保账号的安全和稳定运行。

u014481728的博客 1178

VC----COM

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

yiziweiyang的专栏 446

2017年全国大学生电子设计竞赛综合测评题目解析——Multisim仿真

1.题目 给定两个单电源的双运放芯片READ2302G芯片(当时记得增益带宽积好像是6M),一片HD74LS74数字芯片双D触发器,需要详细电路图、手写报告,5个波形输出,测频,测幅,8:00公布题目,15:00停止答题,中间可以吃饭(也可以不吃继续做),15:00清场,休息一段时间后开始进场测试,打分。 2.要求 (1)一片运放搭建方波振荡电路,频率 20 KHz,误差 0.1 KHz,幅度 3...

DengFengLai123的博客 2万+

SAPFiori Elements Analytical List Page 概述

ALP(Analytical List Page)是SAP Fiori提供的一种复合页面类型,结合了分析(图表/KPI)与事务(表格/操作)功能,适用于需要分析后立即执行处理的业务场景(如采购价格监控、销售逾期处理等)。其核心价值在于让用户在同一页面完成从数据洞察到事务处理的闭环,减少应用切换带来的效率损耗。 页面结构包含页头KPI标签、交互式图表和明细表格,通过联动过滤、选择同步等机制实现数据钻取与即时操作。支持标准过滤和可视化过滤,并依赖OData注解(SelectionVariant/Presenta

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 269

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

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

weixin_39760295的博客 620

100天精通Python(爬虫篇)——第114天:爬虫基础模块之requests基础入门

一、request模块大总结 1. 下载安装 2. 常用属性或方法 3. response.text和response.content的区别: 4. 发送带headers参数请求 5. 发送带参数请求 6. 在headers参数中携带cookie 7. 超时参数timeout的使用 8. proxies代理参数的使用 9. 发送post请求...............

努力让自己发光,对的人才能迎着光而来 11万+

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

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

fddqfddq的专栏 1万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

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

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

小李的专栏 4018

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

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

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

iloveyou418的博客 4958

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

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、付费专栏及课程。

余额充值