本文整理汇总了C++中CObj::GetGlobalID方法的典型用法代码示例。如果您正苦于以下问题:C++ CObj::GetGlobalID方法的具体用法?C++ CObj::GetGlobalID怎么用?C++ CObj::GetGlobalID使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CObj
的用法示例。
在下文中一共展示了CObj::GetGlobalID方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: AnimationHasChanged
void AnimatorBar::AnimationHasChanged()
{
if(m_pObjType)
{
OINFO* info = GetOINFO(m_pObjType->DLLIndex);
vector<CObj*> objs;
CObj* o;
POSITION pos = application->layouts.GetHeadPosition();
while(pos)
{
CLayout* layout = application->layouts.GetNext(pos);
POSITION pos2 = layout->objects.GetStartPosition();
for (int i = 0; i < layout->objects.GetCount(); i++)
{
long ID;
layout->objects.GetNextAssoc(pos2, ID, o);
if (o->GetGlobalID() == m_pObjType->ObjectIdentifier)
objs.push_back(o);
}
}
// Now loop each of the objects and call the end animation function.
for(vector<CObj*>::iterator i = objs.begin(); i!= objs.end(); i++)
{
if(info->ETOnNotify)
info->ETOnNotify((*i)->editObject, 2);
}
if(objs.size() > 0)
if(info->ETOnNotify)
info->ETOnNotify((*objs.begin())->editObject, 3);
}
}
示例2: OnClickObject
void ObjectBarDialog::OnClickObject(NMHDR *pNMHDR, LRESULT *pResult)
{
POSITION Pos = objects.GetFirstSelectedItemPosition();
int Item = objects.GetNextSelectedItem(Pos);
if (!layout) return;
if (layout->m_ObjectFrameIsLockedTo != 0) // InputLocked()
return;
// Select in layout editor, if it's open
if (parent.m_tabs.SelectionGet() == 0 && parent.m_tabs.ItemGetCount() == 2)
{
parent.layout_editor[0][0]->m_sel.RemoveAll();
// This is intentionally here; clear selection if clicked on whitespace
if(Item == -1)
{
parent.layout_editor[0][0]->Invalidate();
g_PropertyBar->Update(parent.layout_editor[0][0], TYPE_LAYOUT, NULL, layout, NULL, application);
return;
}
// Now we have to wangle in the selected object
int ObjectIdentifier = objects.GetItemData(Item);
if (ObjectIdentifier==-1)
return; //folder
CObj* pObject = 0;
CObjType* pObjectType = 0;
POSITION LayerPos = layout->layers.GetHeadPosition();
// So we have to find all the CObj's with this CObjType in the layout, and add them
// For each layer
while(LayerPos)
{
CLayer* pLayer = layout->layers.GetNext(LayerPos);
// Loop all objects
CObjList Objects;
pLayer->GetEveryObject(Objects, layout);
POSITION ObjectPos = Objects.GetHeadPosition();
for (int i = 0; i < Objects.GetCount(); i++)
{
CObj* pTestObject;
long ID = Objects.GetNext(ObjectPos);
layout->objects.Lookup(ID, pTestObject);
if (pTestObject->GetGlobalID() != -1)
{
CObjType* pTestType = pTestObject->GetObjectType(application);
if (pTestType->ObjectIdentifier == ObjectIdentifier)
{
pObjectType = pTestType;
pObject = pTestObject;
long nKey = pObject->GetInstanceID();
parent.layout_editor[0][0]->m_sel.AddTail(nKey);
}
}
}
}
g_PropertyBar->Update(parent.layout_editor[0][0], TYPE_OBJECT, &parent.layout_editor[0][0]->m_sel, layout, &layout->objects, application); // Show object properties
parent.layout_editor[0][0]->Invalidate();
// While we're here, show animations for object
// Future note: .. to be continued
if(!pObjectType)
return;
int iRoot = -1;
OINFO* oInfo = GetOINFO(pObjectType->DLLIndex);
if (oInfo->ETGetAnimationHandle)
{
oInfo->ETGetAnimationHandle(pObject->editObject, iRoot);
pMainWnd->animator.UpdateAnimations(application, layout, pObjectType, iRoot);
}
}
}
示例3: Refresh
void ObjectBarDialog::Refresh(bool layer_changed)
{
// check for unnecessary refresh
if (layer_changed && !show_only_selected_layer)
return;
// clear all lists
objects.DeleteAllItems();
for (int i = 0; i < large_images.GetImageCount(); i++)
large_images.Remove(0);
for (int i = 0; i < small_images.GetImageCount(); i++)
small_images.Remove(0);
if(folderfilter > -1 && folderfilter >= application->object_folders.size())
folderfilter = -1;
CObj* pObject;
CObjType* pObjectType;
CStringArray List; // Object list
//object folders
if (folderfilter == -1)
{
HBITMAP large_image = (HBITMAP) LoadImage(GetModuleHandle(0), MAKEINTRESOURCE(20150), IMAGE_BITMAP, 32, 32, LR_LOADTRANSPARENT);
HBITMAP small_image = (HBITMAP) LoadImage(GetModuleHandle(0), MAKEINTRESOURCE(20150), IMAGE_BITMAP, 16, 16, LR_LOADTRANSPARENT);
int ImageID = ImageList_Add(large_images.m_hImageList, large_image, NULL);
ImageList_Add(small_images.m_hImageList, small_image, NULL);
DeleteObject(large_image);
DeleteObject(small_image);
for (int i=0; i<application->object_folders.size(); ++i)
{
if(application->object_folders[i].name == "Default")
continue;
int item = objects.InsertItem(objects.GetItemCount(), application->object_folders[i].name, ImageID);
objects.SetItemData(item, (DWORD_PTR)(const char*)"-1");
}
} // -1 is Default, -2 is disabled
else if(folderfilter != -2 && application->object_folders[folderfilter].name != "Default")
{
HBITMAP large_image = (HBITMAP) LoadImage(GetModuleHandle(0), MAKEINTRESOURCE(20150), IMAGE_BITMAP, 32, 32, LR_LOADTRANSPARENT);
HBITMAP small_image = (HBITMAP) LoadImage(GetModuleHandle(0), MAKEINTRESOURCE(20150), IMAGE_BITMAP, 16, 16, LR_LOADTRANSPARENT);
int ImageID = ImageList_Add(large_images.m_hImageList, large_image, NULL);
ImageList_Add(small_images.m_hImageList, small_image, NULL);
DeleteObject(large_image);
DeleteObject(small_image);
int item = objects.InsertItem(0,"...\\"+application->object_folders[folderfilter].name, ImageID);
objects.SetItemData(item, (DWORD_PTR)(const char*)"-1");
}
if (layout)
{
POSITION LayerPos = layout->layers.GetHeadPosition();
// For each layer
while(LayerPos)
{
CLayer* pLayer = layout->layers.GetNext(LayerPos);
if (show_only_selected_layer && pLayer != layout->current_layer)
continue;
if (!show_nonlayout_objects && pLayer->m_layerType == LAYER_NONFRAME)
continue;
// Loop all objects
CObjList Objects;
pLayer->GetEveryObject(Objects, layout);
POSITION ObjectPos = Objects.GetHeadPosition();
for (int i = 0; i < Objects.GetCount(); i++)
{
long ID = Objects.GetNext(ObjectPos);
layout->objects.Lookup(ID, pObject);
if (pObject->GetGlobalID() != -1)
{
pObjectType = pObject->GetObjectType(application);
// Failed/invalid object type, for some reason
if(!pObjectType)
continue;
//folder filtering
if(folderfilter ==-1 && pObjectType->GetFolder() != "Default")
continue;
else if(folderfilter > -1 && pObjectType->GetFolder()!=application->object_folders[folderfilter].name)
continue;
bool bAdd = true;
for (int j = 0; j < List.GetSize(); j++)
//.........这里部分代码省略.........
示例4: OnInitDialog
// Initialise the dialog
//
BOOL CEventWizardDlg::OnInitDialog()
{
// Startup
CDialog::OnInitDialog();
int currentPosition = 1;
// Create an m_ObjectImages
m_ObjectImages.DeleteImageList();
bool bSmallImages = false;
// Check what size images we'll need
// 32x32 without families or 16x16 with
if (application->families.size() == 0)
{
m_ObjectImages.Create(32, 32, ILC_COLOR24, 3, 3);
m_List.SetImageList(&m_ObjectImages, LVSIL_NORMAL);
HBITMAP SystemBitmap = LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_SYSTEM));
ImageList_Add(m_ObjectImages, SystemBitmap, SystemBitmap);
DeleteObject(SystemBitmap);
}
else
{
// If it's small, also set the view to small images
m_List.SetView(LV_VIEW_SMALLICON);
m_ObjectImages.Create(16, 16, ILC_COLOR24, 3, 3);
m_List.SetImageList(&m_ObjectImages, LVSIL_SMALL);
HBITMAP SystemBitmap = LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_SYSTEMC));
ImageList_Add(m_ObjectImages, SystemBitmap, SystemBitmap);
DeleteObject(SystemBitmap);
bSmallImages = true;
}
// Prepare to iterate all objects to add icons
POSITION pos = objMap->GetStartPosition();
long mapKey;
CObjType* ObjectType;
// Add '(System)' because system uses it
object_folders["(System)"] = 0;
// Loop through and add all objects to the otList
while (pos != NULL)
{
objMap->GetNextAssoc(pos, mapKey, ObjectType);
if(!ObjectType->m_bIsGroupType)
{
CObj *o;
bool bAdd = false;
// If global, its okay to add...if its not global..and we have a layout...we need to check
if (ObjectType->m_bGlobal)
{
bAdd = true;
}
else if(layout)
{
POSITION pos = layout->objects.GetStartPosition();
for (int i = 0; i < layout->objects.GetCount(); i++)
{
long ID;
layout->objects.GetNextAssoc(pos, ID, o);
if (o->GetGlobalID() == ObjectType->ObjectIdentifier)
{
bAdd = true;
}
}
}
else // we have no layout to this event sheet
{
bAdd = true;
}
// Dont add if it doesn't have conditions/actions
bool hasAces = false;
for (int i = 0; i < ObjectType->GetTableCount(m_aceType); i++)
{
if (ObjectType->GetACESEntry(m_aceType, i)->aceListName == "")
{
hasAces = true;
break;
}
if (hasAces)
break;
}
if(!hasAces)
bAdd = false;
// Okay cool...look like its okay to add...just check if is showabout in the event sheet editor
//.........这里部分代码省略.........