www.pudn.com > 1.rar > I2ControlSet.cpp
// I2ControlSet.cpp: implementation of the CI2WBControlSet class. // ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "resource.h" #define INITGUID #include#include "iaspwb.h" extern HINSTANCE g_hinstance; CI2WBControlSet::CI2WBControlSet() { } CI2WBControlSet::~CI2WBControlSet() { } VOID CI2WBControlSet::enumControlInfo(I2List & m_infolist) { if(!g_hinstance) g_hinstance=GetModuleHandle("iaspwb.dll"); WB32CONTROLINFO wbci; wbci.cid=Draw_Pen; wbci.hicon=LoadIcon(g_hinstance,MAKEINTRESOURCE(IDI_C_PEN)); if(wbci.hicon==NULL) { d::m("load icon failed"); throw new I2BaseException(I2E_NOTSUPPORT); } //wbci.hicon=(HICON)LoadImage(g_hinstance,MAKEINTRESOURCE(IDI_C_PEN),IMAGE_ICON,32,32,TRUE); wbci.hcursor=LoadCursor(g_hinstance,MAKEINTRESOURCE(IDC_C_PEN)); if(wbci.hcursor==NULL) { d::m("load cursor failed"); throw new I2BaseException(I2E_NOTSUPPORT); } LoadString(g_hinstance,IDS_NAME_PEN,wbci.name,MAX_CONTROLNAME); LoadString(g_hinstance,IDS_DESC_PEN,wbci.description,MAX_CONTROLNAME); wbci.type=0; m_infolist.append(wbci); wbci.cid=Draw_Line; wbci.hicon=LoadIcon(g_hinstance,MAKEINTRESOURCE(IDI_C_LINE)); LoadString(g_hinstance,IDS_NAME_LINE,wbci.name,MAX_CONTROLNAME); LoadString(g_hinstance,IDS_DESC_PEN,wbci.description,MAX_CONTROLNAME); wbci.type=0; m_infolist.append(wbci); wbci.cid=Draw_HRect; wbci.hicon=LoadIcon(g_hinstance,MAKEINTRESOURCE(IDI_C_HRECT)); LoadString(g_hinstance,IDS_NAME_HRECT,wbci.name,MAX_CONTROLNAME); LoadString(g_hinstance,IDS_DESC_PEN,wbci.description,MAX_CONTROLNAME); wbci.type=0; m_infolist.append(wbci); wbci.cid=Draw_Rect; wbci.hicon=LoadIcon(g_hinstance,MAKEINTRESOURCE(IDI_C_RECT)); LoadString(g_hinstance,IDS_NAME_RECT,wbci.name,MAX_CONTROLNAME); LoadString(g_hinstance,IDS_DESC_PEN,wbci.description,MAX_CONTROLNAME); wbci.type=0; m_infolist.append(wbci); wbci.cid=Draw_HCirc; wbci.hicon=LoadIcon(g_hinstance,MAKEINTRESOURCE(IDI_C_HCIRC)); LoadString(g_hinstance,IDS_NAME_HCIRC,wbci.name,MAX_CONTROLNAME); LoadString(g_hinstance,IDS_DESC_PEN,wbci.description,MAX_CONTROLNAME); wbci.type=0; m_infolist.append(wbci); wbci.cid=Draw_Circ; wbci.hicon=LoadIcon(g_hinstance,MAKEINTRESOURCE(IDI_C_CIRC)); LoadString(g_hinstance,IDS_NAME_CIRC,wbci.name,MAX_CONTROLNAME); LoadString(g_hinstance,IDS_DESC_PEN,wbci.description,MAX_CONTROLNAME); wbci.type=0; m_infolist.append(wbci); wbci.cid=Draw_HPoly; wbci.hicon=LoadIcon(g_hinstance,MAKEINTRESOURCE(IDI_C_HPOLY)); LoadString(g_hinstance,IDS_NAME_HPOLY,wbci.name,MAX_CONTROLNAME); LoadString(g_hinstance,IDS_DESC_PEN,wbci.description,MAX_CONTROLNAME); wbci.type=0; m_infolist.append(wbci); wbci.cid=Draw_Poly; wbci.hicon=LoadIcon(g_hinstance,MAKEINTRESOURCE(IDI_C_POLY)); LoadString(g_hinstance,IDS_NAME_POLY,wbci.name,MAX_CONTROLNAME); LoadString(g_hinstance,IDS_DESC_PEN,wbci.description,MAX_CONTROLNAME); wbci.type=0; m_infolist.append(wbci); wbci.cid=Draw_Text; wbci.hicon=LoadIcon(g_hinstance,MAKEINTRESOURCE(IDI_C_TEXT)); LoadString(g_hinstance,IDS_NAME_TEXT,wbci.name,MAX_CONTROLNAME); LoadString(g_hinstance,IDS_DESC_TEXT,wbci.description,MAX_CONTROLNAME); wbci.type=0; m_infolist.append(wbci); /*wbci.cid=Draw_Image; wbci.hicon=LoadIcon(g_hinstance,MAKEINTRESOURCE(IDI_C_TEXT)); LoadString(g_hinstance,IDS_NAME_TEXT,wbci.name,MAX_CONTROLNAME); LoadString(g_hinstance,IDS_DESC_TEXT,wbci.description,MAX_CONTROLNAME); wbci.type=0; m_infolist.append(wbci); */ m_infopos=0; } VOID CI2WBControlSet::createControl(INT cid,VOID* pwb,VOID** ppawc,HWND hwnd) { if(!pwb||!ppawc) throw new I2BaseException(I2E_INVALIDPARAMETER); *ppawc=(VOID*)new CI2WBControl(cid,pwb,hwnd); if(!*ppawc) throw new I2BaseException(I2E_OUTOFMEMORY); } VOID CI2WBControlSet::getControlSetID(GUID* Value) { *Value=CSID_Draw; } VOID CI2WBControlSet::getControlCursor(INT cid,HCURSOR* pcur) { switch(cid) { case 0: *pcur=LoadCursor(g_hinstance,MAKEINTRESOURCE(IDC_C_PEN)); break; case 1: *pcur=LoadCursor(g_hinstance,MAKEINTRESOURCE(IDC_C_LINE)); break; case 2: *pcur=LoadCursor(g_hinstance,MAKEINTRESOURCE(IDC_C_RECT)); break; case 3: *pcur=LoadCursor(g_hinstance,MAKEINTRESOURCE(IDC_C_RECT)); break; case 4: *pcur=LoadCursor(g_hinstance,MAKEINTRESOURCE(IDC_C_CIRC)); break; case 5: *pcur=LoadCursor(g_hinstance,MAKEINTRESOURCE(IDC_C_CIRC)); break; case 6: *pcur=LoadCursor(g_hinstance,MAKEINTRESOURCE(IDC_C_POLY)); break; case 7: *pcur=LoadCursor(g_hinstance,MAKEINTRESOURCE(IDC_C_POLY)); break; case 8: *pcur=LoadCursor(g_hinstance,MAKEINTRESOURCE(IDC_C_TEXT)); break; case 9: break; default: throw new I2BaseException(I2E_INVALIDPARAMETER); break; } }