構文
BOOL AddPolygon(VARIANT & vVertex,
BYTE byLineStyle, BYTE byLineWidth, OLE_COLOR ocLineColor,
BYTE byHatchStyle, OLE_COLOR ocForeColor, OLE_COLOR ocBackColor,
BOOL bBackTrans);
多角形を追加します。
パラメータ
vVertex
(x, y) 頂点列。型は VT_R8 | VT_ARRAY にしてください。
byLineStyle
線種。次のいずれかの値を指定できます。
- 0実線。
- 1破線。
- 2点線。
- 3一点破線。
- 4二点破線。
- 5なし。
byLineWidth
線幅。
crLineColor
線色。
byHatchStyle
模様の種類。次のいずれかの値を指定できます。
- 0なし。
- 1塗りつぶし。
- 2水平ハッチ。
- 3垂直ハッチ。
- 4右下がりハッチ。
- 5右上がりハッチ。
- 6水平と垂直の格子ハッチ。
- 7斜め格子ハッチ。
- 8ドット1。
- 9ドット2。
- 10ドット3。
- 11ウェーブ1。
- 12ウェーブ2。
- 13ウェーブ3。
- 14斜線1。
- 15斜線2。
- 16破線1。
- 17破線2。
- 18板目。
- 19グラデーション横1。
- 20グラデーション横2。
- 21グラデーション縦1。
- 22グラデーション縦2。
- 23グラデーション右上。
- 24グラデーション左上。
- 25グラデーション中心。
- 26グラデーション右上。
- 27グラデーション右下。
- 30半透明。
- 40水平ハッチ。2の水平ハッチより目が細かい。
- 41垂直ハッチ。3の垂直ハッチより目が細かい。
- 42水平と垂直の格子ハッチ。6のハッチより目が細かい。
crForeColor
前景色。
crBackColor
背景色。
bBackTrans
背景を透明にするかどうか。0で不透明、1で透明。
戻り値
多角形を追加できた場合 0 以外を返します。できなかった場合は 0 を返します。
使用例
// 間取りオブジェクトへ接続 CMadoriDoc * m_MadoriDoc = new CMadoriDoc(); CLSIDFromProgID (L"MyHomeDesignerMadori.MadoriDoc", &clsid); GetActiveObject (clsid, NULL, &pUnk); pUnk->QueryInterface (IID_IDispatch, (void**)(&pDisp)); m_MadoriDoc->AttachDispatch (pDisp); // たかっけいを追加 SAFEARRAYBOUND bound[1]; bound[0].cElements = 8; bound[0].lLbound = 0; SAFEARRAY * pArray = SafeArrayCreate(VT_R8, 1, bound); double * pVar; SafeArrayAccessData(pArray, (void**)&pVar); double dVertex[8] = {0.0, 0.0, 10000.0, 0.0, 10000.0, 10000.0, 0.0, 10000.0}; for(int i=0; i < 8; ++i){ pVar[i] = dVertex[i]; } VARIANT v; v.vt = VT_R8 | VT_ARRAY; v.parray = pArray; OLE_COLOR ocLineColor = (OLE_COLOR)RGB(0,0,0); OLE_COLOR ocForeColor = (OLE_COLOR)RGB(0,255,0); OLE_COLOR ocBackColor = (OLE_COLOR)RGB(0,0,255); BOOL bBackTrans = FALSE; long lRet = m_MadoriDoc->AddPolygon(v, 0, 0, ocLineColor, 0, ocForeColor, ocBackColor, bBackTrans); SafeArrayUnaccessData(pArray); if(!lRet){ // エラー return; }