本文整理匯總了C++中ROW::GetCell方法的典型用法代碼示例。如果您正苦於以下問題:C++ ROW::GetCell方法的具體用法?C++ ROW::GetCell怎麽用?C++ ROW::GetCell使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類ROW
的用法示例。
在下文中一共展示了ROW::GetCell方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C++代碼示例。
示例1: DestroyEditControl
void TABLE::DestroyEditControl()
{
if(hEdit)
{
// Get the rectangle of the cell for intelligent update
RECT cellRect;
GetWindowRect(hEdit, &cellRect);
ScreenToClient(hTable, (POINT*)&cellRect);
ScreenToClient(hTable, (POINT*)&cellRect.right);
cellRect.left -= COLUMN::CellCharWidth(editCol);
cellRect.top = cellRect.bottom - TABLE_ATTRIBUTES::CellHeight();
cellRect.right += COLUMN::CellCharWidth(editCol);
// un-subclass the control in preparation for destroy
RemoveProp(hEdit, "loPtr");
RemoveProp(hEdit, "hiPtr");
RemoveProp(hEdit, "number");
SetWindowLong(hEdit, GWL_WNDPROC, (long)oldEditControlProc);
// get the text and update the cell as necessary
WORD len = (WORD)SendMessage(hEdit, WM_GETTEXTLENGTH, 0, 0L)+1;
char* buffer = new char[len];
SendMessage(hEdit, WM_GETTEXT, (WPARAM)(len+1), (LPARAM)buffer);
RUNTIMEINFO* rtime = (RUNTIMEINFO*)AObjGetRuntimeInfo(theObject);
ROW* row = rtime->GetRow();
if(hstrcmp(row->GetCell(editRow, editCol, FALSE, NULL), buffer))
{
row->SetCell(editRow, editCol, buffer);
TABLE_ATTRIBUTES::SetEditRow(editRow);
TABLE_ATTRIBUTES::SetEditColumn(editCol);
PostObjectChanged(CHANGED_FULLREDRAW);
AEvtPostSignalAtMark(theObject, SIGNAL_TABLEEDITED);
}
delete buffer;
// destroy the window
DestroyWindow(hEdit);
hEdit = NULL;
DeleteObject(hEditFont);
AEvtPostSignalAtMark(theObject, SIGNAL_STOPEDITING);
// make sure the proper region is redrawn
InvalidateRect(hTable, &cellRect, FALSE);
UpdateWindow(hTable);
// wipPreventThieves(ParentID, FALSE); SKJ need replacement
}
}
示例2: CreateEditControl
void TABLE::CreateEditControl()
{
if(hEdit || TABLE_ATTRIBUTES::AutoFill() || !TABLE_ATTRIBUTES::CanActivate())
return;
long activeRow = TABLE_ATTRIBUTES::ActiveRow();
if(activeRow<0)
return;
if((activeRow<firstRow) || (activeRow>(firstRow+numVisRows-1)))
return;
int activeCol = TABLE_ATTRIBUTES::ActiveColumn();
if(!COLUMN::CanEdit(activeCol))
return;
RUNTIMEINFO* rtime = (RUNTIMEINFO*)AObjGetRuntimeInfo(theObject);
ROW* row = rtime->GetRow();
if(!row->IsSelected(activeRow))
return;
int width = COLUMN::ColumnWidth(activeCol);
if(width==0)
return;
int height = TABLE_ATTRIBUTES::CellHeight();
if(TABLE_ATTRIBUTES::RowLines())
height++;
int cellY = tblRect.top + ((int)(activeRow - firstRow))*height;
if(TABLE_ATTRIBUTES::ShowTitles())
{
cellY += (TABLE_ATTRIBUTES::TitleHeight()+1);
if(TABLE_ATTRIBUTES::RowLines())
cellY++;
}
if(TABLE_ATTRIBUTES::RowLines())
height--;
int cellX = tblRect.left;
for(int i=0; i<activeCol; i++)
{
if((i>=TABLE_ATTRIBUTES::NumFixedColumns()) && (i<firstColumn))
continue;
if(COLUMN::ColumnWidth(i)==0)
{
if((i==(TABLE_ATTRIBUTES::NumFixedColumns()-1))
&&
(cellX!=tblRect.left))
cellX++;
continue;
}
cellX += COLUMN::ColumnWidth(i);
if(TABLE_ATTRIBUTES::ColumnLines())
cellX++;
if(i==(TABLE_ATTRIBUTES::NumFixedColumns()-1))
cellX++;
}
HDC hDC = GetDC(hTable);
HPEN hPen = CreatePen(PS_SOLID, 1, GetSysColor(COLOR_WINDOW));
LOGBRUSH lb = {BS_SOLID, GetSysColor(COLOR_WINDOW), 0};
HPEN oldPen = (HPEN)SelectObject(hDC, hPen);
HBRUSH hBrush = CreateBrushIndirect(&lb);
HBRUSH oldBrush = (HBRUSH)SelectObject(hDC, hBrush);
int right = cellX+width;
if(right>tblRect.right)
right = tblRect.right;
Rectangle(hDC, cellX, cellY, right, cellY+height);
SelectObject(hDC, oldPen);
DeleteObject(hPen);
SelectObject(hDC, oldBrush);
DeleteObject(hBrush);
ReleaseDC(hParentWnd, hDC);
cellX += COLUMN::CellCharWidth(activeCol);
width -= 2*COLUMN::CellCharWidth(activeCol);
if((cellX+width)>tblRect.right)
width = tblRect.right - cellX;
int offset = 2*TABLE_ATTRIBUTES::CellLeading()/3 + TABLE_ATTRIBUTES::CellAscent() - COLUMN::CellAscent(activeCol);
cellY = cellY + offset;
height = TABLE_ATTRIBUTES::CellHeight() - offset;
editRow = activeRow;
editCol = activeCol;
char huge* cellPtr = row->GetCell(activeRow, activeCol, FALSE, NULL);
UINT length = (UINT)hstrlen(cellPtr) + 1;
char* cellStr = new char[length];
hmemcpy(cellStr, cellPtr, length);
hEdit = CreateWindow("EDIT", cellStr,
WS_CHILD | ES_AUTOHSCROLL,
cellX, cellY,
width, height,
hTable, (HMENU)3, G.hInstance, NULL);
//.........這裏部分代碼省略.........