|
Hi, Tim,
thank you for your reply, your tip with the hot imagelist did'nt work ...
But i found another way to get it running :
I now do not use the internal CToolBarCtrl :
-------------------------------------------------------------------------
...
HIMAGELIST hImageList = m_wndToolBar.GetDefaultImageList();
CImageList imageList;
imageList.Attach(hImageList);
imageList.DeleteImageList();
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP6);
imageList.Create(16, 16, ILC_MASK | ILC_COLOR24, 3, 20);
imageList.Add(&bmp,RGB(255,0,255));
m_wndToolBar.SetDefaultImageList(hImageList);
imageList.Detach();
...
-------------------------------------------------------------------------
thank you very much
Stefan
|
|
|
|
|
This event definitely deserves to be marked in bold in the history of C++ and MFC.
For my fellow CPians - It is going to take you some time to grasp and understand the Width, Height, and Depth of this wonderful contribution made by Chris and David.
To simplify I would recommend CPians to take a look at this URL; http://www.codeproject.com/script/Articles/list_articles.asp?userid=3069388[^]
As is seen here there are almost 43 articles describing in somewhat detail on each of the feature of the Toolbox, Grid etc.
Chris and David - Thanks for sharing such a valuable contribution to us. Also please do not get dishearted if you fail to receive good / bad responses from CPians - your contribution seems to be so huge that people would need to some time to get in pace with it and then come up with some constructive feedback.
Best regards,
Yogesh Dhakad
|
|
|
|
|
I wasn't able to find an edit control that had this functionality. Is it there and I'm missing it? If so what class is it?
Thanks,
Matt
|
|
|
|
|
Hi Matt
No, I don't think there is one. Do you need a CFindReplaceDialog type implementation?
|
|
|
|
|
I do!
I'm currently using a straight multiline CEdit control in a dialog box. I'd like to offer a find/replace feature.
Thank you for looking into it.
Matt
|
|
|
|
|
Well hmmm!
This looks like yet another category of contribution to consider - certainly an article would be the way to start, whether as a stand-alone CP contribution or directly intended as an addition to the Ultimate Toolbox.
We should be coming up with some general guidelines for the various types of contributions that folks might want to make in the coming weeks - and try to deal with the issues around how best to collaborate on this - we'll probably be looking for a few good CPians to take charge of things, but certainly leave the door open for submissions of this kind.
Details details - suggestions welcome!
Meanwhile, thanks!
Tim
|
|
|
|
|
Hi every body,
It is a pleasure to find such a nice code on the Code Project, hope this will help many developpers.
I have a little problem when I want to use the toolbox: I tried the Statically linking way to use the toolbox. I did all the steps indicated in the help document. But, when I try any of the sample projects (The Getting Started for example)using the (UsingStaticLib) I get the error message (fatal error RC1015: cannot open include file 'OXMain.rc'. Error executing rc.exe.)
Any one can tell me why? Thanks in advance.
Regards,
wryamam
|
|
|
|
|
Ok, sorry I found it: very easy , Tools-> Options -> Directories :include Ultimate Toolbox/include
|
|
|
|
|
I still can't believe that such a good and professionally written library is now available for free and that too with complete source code.
I think that this is the biggest thing happens to VC++ since 1998 after VC++ 6.0 release.
It is only major update to VC++ class library since then.
http://Faq.Programmerworld.net
(FAQ and Tips for programmers)
|
|
|
|
|
At first: Thank you for this excellent piece of code!
If the menu of the SkinsDemo-App is between the 2 Monitors, the pull-down menu is drawn at a wrong xPos.
I changed a little in COXBitmapMenu.cpp:
void COXBitmapMenu::DeterminePosition(...)
...
if (dwStyle & CBRS_ORIENT_HORZ)
{
// Horizontal menu
ptTopLeft.x = lpItemRect->left;
if (ptTopLeft.x < iMixScreenX)
ptTopLeft.x = iMixScreenX;
if (ptTopLeft.x + sizeMenu.cx > iMaxScreenX)
{
//////////////////////////////////////////////////////////////////////////
// changed by Manfred Drasch
if (ptTopLeft.x < 0)
ptTopLeft.x = -1;
else
ptTopLeft.x = iMaxScreenX-1;
// Orig: ptTopLeft.x = iMaxScreenX - sizeMenu.cx;
//////////////////////////////////////////////////////////////////////////
}
...
Tested with XP/SP2 and Vista
|
|
|
|
|
Picky picky picky...
Thanks.
|
|
|
|
|
Awesome guys -- Thanks!
Just one note: The Address Book sample will not compile in VS2005 out of the box. Here are the steps taken to correct that:
1) The dependent library EDKGUID.LIB is not in the current SDK, so you either have to download an old SDK or download the MAPI Kit. However if you set an include path to an old SDK the compiler will load other modules from that path, so you need to copy the EDKGUID.LIB file to another folder or to the project folder and set the path to that.
2) Since there is no project for UTSampleAbout and thus no dependencies set for any such project, you need to add UTBStrOp.cpp and HtmlCtrl.cpp to the Address Book project so they will get compiled and linked in, otherwise you will get external link errors.
That's it -- it compiles and runs perfectly after that.
Thanks again guys. That's an awesome gesture on your part. We sincerely appreciate it.
In business, if two people always agree, one of them is unnecessary.
|
|
|
|
|
I'm trying to move an application to UTB93 and UG72 from UTB7 and UG5.
I'm compiling on VS2005; I did have the older version compiling and linking under VS2005.
Using the older version of the toolkits, the COXCoolToolBar displayed with the XP style toolbar shading.
When I compile with the newer versions, I am gettings a flat grey toolbar.
How can I get the new style of toolbars with the new versions?
Also, if there is a better place to ask these questions, please let me know.
|
|
|
|
|
Hi Sheri
Sheri Steeves wrote: Using the older version of the toolkits, the COXCoolToolBar displayed with the XP style toolbar shading.
When I compile with the newer versions, I am gettings a flat grey toolbar.
How can I get the new style of toolbars with the new versions?
That's going back through a few versions - but the COXCoolToolBar code is pretty much unchanged from v7.51 - (which is the earlest version I have on this machine).
The OXSkins code has a lot of changes, however.
If the application does not have a skin set, the toolbar should use a classic skin. This code shows the decision process:
COXToolbarSkin* COXCoolToolBar::GetToolbarSkin()
{
COXSkinnedApp* pSkinnedApp = DYNAMIC_DOWNCAST(COXSkinnedApp, AfxGetApp());
if (pSkinnedApp != NULL && pSkinnedApp->GetCurrentSkin() != NULL)
return pSkinnedApp->GetCurrentSkin()->GetToolbarSkin();
else
{
if (m_pToolbarSkin == NULL)
m_pToolbarSkin = new COXToolbarSkinClassic();
return m_pToolbarSkin;
}
}
The drawing routines for the toolbar use this call to determine which skins class to use - e.g. GetToolbarSkin()->DrawNonClientArea(&dc, rect, this); . The code in the COXToolbarSkinClassic class will certainly be different between the two versions.
But I don't see where the impact you are decsribing would come from - I wonder if the old code was modified to create a COXToolbarSkinXP by default?
And, yes, maybe this thread would be better placed in the Application Skins[^] page, but no biggie
|
|
|
|
|
I'd just like to say thanks for both this and Ultimate Grid. We have used both of these toolkits for several years in our products.
C++\MFC is still alive and well!
I am now in the process of moving one of these products to VC2005. In the project, I was linking in directly only the classes I am using. I found in the Ultimate Toolbox \include directory there is a file UGStrop.h, which contains the UGStr class. This file is also in the Ultimate Grid \include directory but with different contents - it contains the UTBStr class..
As I am using both toolkits, and Ultimate Toolbox was on my include path first, the UltimateGrid source would not compile, it complained about not being able to find the UGStr class.
I solved this by deleting the header file from the UTB \include directory.
-- modified at 15:58 Wednesday 29th August, 2007
|
|
|
|
|
Sheri Steeves wrote: I solved this by deleting the header file from the UTB \include directory.
Thank you so much.
Same issue here in maintaining an almost old app when moving it to VS 2008 and your solution saved me minutes or maybe even hours of time.
Thank you again for the great tip.
Cheers.
"In the end it's a little boy expressing himself." Yanni
|
|
|
|
|
I can't believe it's open source now, and why do you stop the business?
Good Luck!
|
|
|
|
|
First of all,thanks a lot,this is really a fantastic lib, I love it.
When i compile parser sample , i find a problem ,
file OXParser.cpp,OXHTMLParser.cpp have such code :
ParserEntity COXParser::m_Entity[] =
{
{TEXT("gt"), TEXT(">")},
{TEXT("lt"), TEXT("<")},
{TEXT("amp"), TEXT("&")},
{TEXT("apos"), TEXT("\'")},
{TEXT("quot"), TEXT("\"")},
{TEXT("quot"), TEXT("\"")},
{TEXT("amp"), TEXT("&")},
{TEXT("apos"), TEXT("\'")},
{TEXT("lt"), TEXT("<")},
{TEXT("gt"), TEXT(">")},
{TEXT("nbsp"), TEXT(" ")},
{TEXT("iexcl"), TEXT("?)},
{TEXT("cent"), TEXT("?)},
{TEXT("pound"), TEXT("?)},
{TEXT("curren"), TEXT("?)},
{TEXT("yen"), TEXT("?)},
{TEXT("brvbar"), TEXT("?)},
{TEXT("sect"), TEXT("?)},
{TEXT("uml"), TEXT("?)},
{TEXT("copy"), TEXT("?)},
{TEXT("ordf"), TEXT("?)},
{TEXT("laquo"), TEXT("?)},
{TEXT("not"), TEXT("?)},
{TEXT("shy"), TEXT("?)},
{TEXT("reg"), TEXT("?)},
{TEXT("macr"), TEXT("?)},
{TEXT("deg"), TEXT("?)},
{TEXT("plusmn"), TEXT("?)},
{TEXT("sup2"), TEXT("?)},
{TEXT("sup3"), TEXT("?)},
{TEXT("acute"), TEXT("?)},
{TEXT("micro"), TEXT("?)},
{TEXT("para"), TEXT("?)},
{TEXT("middot"), TEXT("?)},
{TEXT("cedil"), TEXT("?)},
{TEXT("sup1"), TEXT("?)},
{TEXT("ordm"), TEXT("?)},
{TEXT("raquo"), TEXT("?)},
{TEXT("frac14"), TEXT("?)},
{TEXT("frac12"), TEXT("?)},
{TEXT("frac34"), TEXT("?)},
{TEXT("iquest"), TEXT("?)},
{TEXT("Agrave"), TEXT("?)},
{TEXT("Aacute"), TEXT("?)},
{TEXT("Acirc"), TEXT("?)},
{TEXT("Atilde"), TEXT("?)},
{TEXT("Auml"), TEXT("?)},
{TEXT("Aring"), TEXT("?)},
{TEXT("AElig"), TEXT("?)},
{TEXT("Ccedil"), TEXT("?)},
{TEXT("Egrave"), TEXT("?)},
{TEXT("Eacute"), TEXT("?)},
{TEXT("Ecirc"), TEXT("?)},
{TEXT("Euml"), TEXT("?)},
{TEXT("Igrave"), TEXT("?)},
{TEXT("Iacute"), TEXT("?)},
{TEXT("Icirc"), TEXT("?)},
{TEXT("Iuml"), TEXT("?)},
{TEXT("ETH"), TEXT("?)},
{TEXT("Ntilde"), TEXT("?)},
{TEXT("Ograve"), TEXT("?)},
{TEXT("Oacute"), TEXT("?)},
{TEXT("Ocirc"), TEXT("?)},
{TEXT("Otilde"), TEXT("?)},
{TEXT("Ouml"), TEXT("?)},
{TEXT("times"), TEXT("?)},
{TEXT("Oslash"), TEXT("?)},
{TEXT("Ugrave"), TEXT("?)},
{TEXT("Uacute"), TEXT("?)},
{TEXT("Ucirc"), TEXT("?)},
{TEXT("Uuml"), TEXT("?)},
{TEXT("Yacute"), TEXT("?)},
{TEXT("THORN"), TEXT("?)},
{TEXT("szlig"), TEXT("?)},
{TEXT("agrave"), TEXT("?)},
{TEXT("aacute"), TEXT("?)},
{TEXT("acirc"), TEXT("?)},
{TEXT("atilde"), TEXT("?)},
{TEXT("auml"), TEXT("?)},
{TEXT("aring"), TEXT("?)},
{TEXT("aelig"), TEXT("?)},
{TEXT("ccedil"), TEXT("?)},
{TEXT("egrave"), TEXT("?)},
{TEXT("eacute"), TEXT("?)},
{TEXT("ecirc"), TEXT("?)},
{TEXT("euml"), TEXT("?)},
{TEXT("igrave"), TEXT("?)},
{TEXT("iacute"), TEXT("?)},
{TEXT("icirc"), TEXT("?)},
{TEXT("iuml"), TEXT("?)},
{TEXT("eth"), TEXT("?)},
{TEXT("ntilde"), TEXT("?)},
{TEXT("ograve"), TEXT("?)},
{TEXT("oacute"), TEXT("?)},
{TEXT("ocirc"), TEXT("?)},
{TEXT("otilde"), TEXT("?)},
{TEXT("ouml"), TEXT("?)},
{TEXT("divide"), TEXT("?)},
{TEXT("oslash"), TEXT("?)},
{TEXT("ugrave"), TEXT("?)},
{TEXT("uacute"), TEXT("?)},
{TEXT("ucirc"), TEXT("?)},
{TEXT("uuml"), TEXT("?)},
{TEXT("yacute"), TEXT("?)},
{TEXT("thorn"), TEXT("?)},
{TEXT("yuml"), TEXT("")},
{ NULL, NULL } // must be last
};
look at this :
TEXT("?)},
compile error, I don't know what "?" means .
wangniu
|
|
|
|
|
You are really a Niu,Have you ever tried your regional settings?
|
|
|
|
|
Hi wangniu
This has been reported before, in the context of compiling on a machine whose default language was Traditional Chinese. Switching to English resolved the issue, and it wasn't persued beyond that.
If you compile the static library versions of the code, you should be able to switch back to your regular charset and continue working with the static libs.
I'm still scratching my head on this one - it seems very odd that this is the only place the code has problems with that language setting.
|
|
|
|
|
Why don't you just use the ASCII code?! Such as '\x61' for 'a'. It should be the best way to solve this problem on any platform.
|
|
|
|
|
Don't get me wrong. I would’ve killed for such library... 10 years ago. Does the release as open source means, that there is no money left in type of development? End of an era?
|
|
|
|
|
Nikolay Avrionov wrote: Does the release as open source means, that there is no money left in type of development?
Absolutely not. MFC is alive and well otherwise we would not have released this library. There is a massive MFC and C++ community and we've been planning this release for a while now. Microsoft themselves have continued to reaffirm their support for MFC and C++ and we're pushing to get as much information out of them in terms of the suprises in store for C++ development in Visual Studio 2008.
cheers,
Chris Maunder
CodeProject.com : C++ MVP
|
|
|
|
|
Thanks a lot for your excellent contribution. I think this is the best contribution on codeproject.
|
|
|
|
|
Thank you for your contribution.
旧日重来
|
|
|
|
|