Subject |
Author |
Date |
|
Michael Clapp
|
Jul 17, 2007 - 3:34 PM
|
Hi .. Our applicaiton has a Dialog Bar implementation similar to the FixedSizePanel example (Panel with Dialog). We would like to prevent the ControlBar from redocking once we dock it after its been created. Also we would like to have the close button displayed when it is docked..
Is this possible?
thanks, Mark F.
|
|
Technical Support
|
Jul 18, 2007 - 8:58 AM
|
The following set of virtual methods should simply return false if you want to lock only one bar: CExtControlBar::_DraggingIsEnabled()
CExtControlBar::_RowResizingIsEnabled()
CExtControlBar::_RowRecalcingIsEnabled()
CExtControlBar::_FloatStateChangingIsEnabled()
CExtControlBar::_NcMenuButtonIsEnabled()
CExtControlBar::_ClosingIsEnabled()
CExtControlBar::_AutoHidingIsEnabled()
CExtControlBar::OnConstructDockSiteControlBarPopupMenu()
CExtControlBar::_CanDockToTabbedContainers()
CExtControlBar::_CanDockLTRB() Please note you can lock all the contro bars by using the following code: CExtControlBar::g_bLockAllBars = true;
pMainFrame->RecalcLayout();
CExtControlBar::stat_RecalcBarMetrics( pMainFrame ); As for the Close button, there is no way to add it in the current implementation of the panel control bar when it is docked.
|
|
Herve Dumont
|
Jul 17, 2007 - 10:09 AM
|
Context: A Dialog derived from CExtNCW<CDialog> a CExtGridWnd is embedded in the dialogue. Check boxes and others controls from the grid are correctly painted with the paint manager meanwhile the column headers is always painted in grey. Question: how to indicate the header should be painted with the correct theme colour. I’m using Office 2007 themes.
|
|
Technical Support
|
Jul 17, 2007 - 12:04 PM
|
You should apply the __EGWS_EX_PM_COLORS grid style in this way: m_wndGrid.SiwModifyStyleEx( __EGWS_EX_PM_COLORS ); When it is applied, the grid window is painted using the Paint Manager’s color scheme, the default system colors otherwise.
|
|
Herve Dumont
|
Jul 19, 2007 - 9:08 AM
|
It works perfect now. Thanks
|
|
Malcolm D
|
Jul 17, 2007 - 12:43 AM
|
I have a property item which has a CExtGridCellDropListComboBox which has images which are about twice the height of a normal cell. They appear ok in the drop down - the drop down checks their height and makes each item the correct size for the icon, but how do we make the actual cell large enough to fit the icon, with out it being cropped or spilling into the previous cell (as it currently does)
Thanks
|
|
Technical Support
|
Jul 18, 2007 - 8:43 AM
|
You should use the CExtPropertyItem::HeightPxGet() and CExtPropertyItem::HeightPxSet() methods which allow you to get and set the height of the property item (value or category) in pixels. The default value of row height is -1 and it means the row height should be default for the tree grid window.
|
|
tera t
|
Jul 16, 2007 - 8:38 PM
|
Hi,
If you like. Please teach it about UpdateLayeredWindow. By using this function. Can I do some domains of application View transparently?
If there are sample programs, give me it.
|
|
Technical Support
|
Jul 17, 2007 - 7:56 AM
|
All layered window have the WS_EX_LAYERED extended window style and are supported on Windows 2000 and later. There are two types of layered windows:
1) The layered windows which have equal transparency for each window pixel. You should simply apply WS_EX_LAYERED and invoke the SetLayeredWindowAttributes() API to make the window equally transparent for each of its pixels including all the child windows. This is a simple type of layered window and it works exactly like a regular non-transparent window. I.e. such a transparent window and all its child windows are receiving WM_PAINT for painting.
2) The layered windows which have per-pixel transparency. You should also simply apply the WS_EX_LAYERED extended window style first and then invoke the UpdateLayeredWindow() API to assign a 32-bit bitmap with alpha channel to the layered window. The window size should be exactly the same as the bitmap size. If you need to change the window, then you should re-invoke the UpdateLayeredWindow() API and specify a new bitmap with the correct size. The per-pixel transparent layered windows are very specific. You should think about such windows as they are not windows at all. They are per-pixel bitmaps which are displayed between other windows on the desktop. You should not create child windows inside such layered windows. So, these windows are typically used for implementing some popup markers during drag-and-drop or some small notification popup windows with a skinned look.
|
|
tera t
|
Jul 18, 2007 - 7:50 PM
|
|
|
Seth Strong
|
Jul 16, 2007 - 12:04 PM
|
Thank you in advance for your help.
I would like to be able to dock two dialogs that are in control bars together, and then be able to auto-hide this pair as a group, so that when I select the tab both windows come out in their most recent placement.
Does my question make sense and is it possible to get this behavior?
Thanks again, Seth Strong
|
|
Seth Strong
|
Jul 17, 2007 - 6:37 AM
|
I can see where I wasn’t clear on this. The group I’m imagining is made of multiple dialogs that were in other control bars so they have docking capability. These dialogs are then docked together so you can see both of them (like a splitter setup). Now currently if this set of dialogs was floating then you would see an additional border of the dynamic control bar that is made to hold the dialog. You can actually use this new border to hide the whole group. I also want to be able to re-display the whole group. And when I dock my set of dialogs, I still want to see an additional caption bar which lets me autohide the set of dialogs so that the arrangement of the dialogs remains.
I put a simple graphic at http://www.marinesonic.com/images/sstrong_PROFUIS_idea.jpg . It is meant to give you the idea of two dialogs docked together and also docked as a group against the left or right of the CMainFrame with an additional caption for the group so I can pin and unpin the set of dialogs (or rip them separate by their individual captions or whatever).
After that, I just described how I felt this group could be organized into the pop-up menu made by the Prof-UIS framework that I can use to hide or display child windows. By my understanding, there are two parts you don’t support.
- You don’t save a subset of the layout which would allow users to auto hide and to redisplay a group of dialogs that are docked together by means of the X on the caption to hide and using the right click menu to show the group.
You can dock two dialogs together on the side of a frame while they are both "pinned" open so they are shown as desired. But you cannot unpin both so that they open and close as one.
Using a tab container is a convenient way to display 1 window at a time of a group, I think it would be very useful to have support for sets of windows as I have described.
|
|
Technical Support
|
Jul 17, 2007 - 8:01 AM
|
Thank you for clarifying your question. It seems you need to create a resizable control bar and then create a static CExtSplitterWnd window inside it with two rows and one column. Finally you should create two dialogs as splitter pages. The dialogs should simply be created as children of the splitter and then you should assign correct dialog control identifiers to them: pSomeDialog->SetDlgCtrlID( pSplitterWnd->IdFromRowCol( ... ) )
|
|
Hans Bergmeister
|
Jul 18, 2007 - 7:16 AM
|
Hello,
it seems that Seth is demanding exactly the same, what we have desired several times before, too.
The approach with the CExtSplitterWnd resolves only the scenario, where it is clear at COMPILE TIME, how the permanent control bars are hosted by dynamic control bars (to use Seth’s terminology here). What we are desiring (and what Seth may desire, too) is to offer the possibility, to arrange permanent control bars in dynamic control bars AT RUNTIME in an arbitrary manner and to give the end user the possibility, to hide and restore such dynamic control bars in one step.
Among others it is necessary for this purpose, to give the end user access to such hidden dynamic control bars; the cascaded menu and the naming convention as outlined in Seth’s article from Jul 16 - 21:31 PM is an excellent idea and I support it. Today only the permanent control bars are available as manageable objects; only these bars can be accessed through the auto-menu, while hidden. Once hidden, however, these permanent control bars are always restored as "isolated" objects from the end user’s point of view.
End users do not have any access to hidden dynamic control bars and are therefore not able, to restore a hidden dynamic control bar and all contained permanent control bars in one step.
It would be a great improvement, if we could give our end users access to hidden hosting dynamic control bars, too.
|
|
Technical Support
|
Jul 16, 2007 - 1:29 PM
|
Actually it is not completely clear what you want to achieve so let us clear out. If you have a control bar with a dialog inside and some other control bar with another dialog inside then it is up to the users whether they want to dock these control bars in a common tab group and then autohide, or leave them floating and so on. This is the general idea of dockable control bars by definition. Please let us know what restrictions are talking about?
|
|
Seth Strong
|
Jul 16, 2007 - 12:31 PM
|
I saw the conversation you had with Hans at http://www.prof-uis.com/Forum_View.aspx?CID=40&M=53980&s=CControlBar. So I can see that you are considering adding this feature even though you haven’t yet.
Here’s a thought though. For this idea, I’ll call the control bars made to support floating "dynamic control bars", and I’ll call the control bars that I make in order to set up my GUI "permanent control bars". I only say this because I could be jumbling the names.
I guess, for every permanent control bar, there is potentially the number of permanent control bars / 2 of these special dynamic control bars to be made. If one dynamic control bar houses two permanent control bars, than I would like the dynamic control bar to register itself with the paint manager, I would like it’s name to be the name of the first permanent control bar / the name of the second permanent control bar, so that it might be "Name 1 / Name 2", and lastly I would like the auto-menu to show "Name 1 / Name 2" as a sub menu which gives you three options: "Show / Hide All", "Name 1", "Name 2". The "Show / Hide All" would auto-hide or display the group. In this way, it is clear how to access the dynamic control bar that holds more than one permanent control bar and it is also clear how to get just one permanent control bar. The dynamic control bar should keep the state of its members, so that it can redisplay properly.
|
|
Jay Humbard
|
Jul 16, 2007 - 9:15 AM
|
Okay, when I do a Toolbar Reset (from the customize dialog), when the if( ::AfxMessageBox( strQst, nType ) != IDYES ) in BarResetAsk in extcustomize.cpp gets called, my app starts failing to load bitmaps from resources. I don’t know why.. ALL loadbitmps fail from that point forward. Any ideas?
Its only when the afxmessagebox gets shown that the loadbitmaps start to fail.
Jay
|
|
Jay Humbard
|
Jul 16, 2007 - 9:17 AM
|
Note2: This works fine in Release build - it only fails in Debug build - just a bit disconcerting but I can live with it for now. Would just like to find the answer as to why, to make sure its not a sign of a bigger problem
ProfUIS is built in DLL mode, with DLL MFC, multithreaded.
|
|
Technical Support
|
Jul 16, 2007 - 11:02 AM
|
Actually the code for loading bitmap resources and the code for the Customize dialog do not depend on each other. So it is hardly possible to figure out what is wrong without seeing your code. Would you send us a test project that demonstrates the problem?
|
|
Jon Ort
|
Jul 16, 2007 - 8:58 AM
|
It appears from the 2.70 source that the item data set into a combo box is going to be a memory handle. There is no requirement for this to be the case with the base MFC or Windows combo box classes. This creates a problem for us because we use simple indexes on alpha sorted lists as the item data. When the index is zero we get assertions in CExtComboBoxBase::OnCBGetItemData. The work-around for us is to increment and decrement the index before and after it comes out of the combo box but that does complicate the code a bit and requires an extra comment line at every single access to make sure that engineers maintaining the code in the future don’t mess it up.
Was there a particular reason for this?
Thanks Jon
|
|
Technical Support
|
Jul 16, 2007 - 1:19 PM
|
Would you reproduce the problem in a simple test project and send it to us so we can quickly find out what is wrong?
|
|
Rado Manzela
|
Jul 16, 2007 - 6:08 AM
|
Is it possible to use CHtmlView in prof-uis as view in SDI ? I’ve put chtmlview derived class into SDI sample, but it is crashing (is it bug in prof-uis, or have I kade some mistake?). Here is the sample project : http://rrrado.szm.sk/htmlview.zip It crashes when you right click into view (webbrowser’s context menu is shown) then close the application. Any ideas why?
Thank you!
|
|
Technical Support
|
Jul 16, 2007 - 1:22 PM
|
The problem should be gone if you add one line of code: BOOL CMainFrame::DestroyWindow()
{
. . .
SetActiveView( NULL ); // THIS LINE WAS ADDED
return CExtNCW < CFrameWnd >::DestroyWindow();
}
|
|
Rado Manzela
|
Jul 17, 2007 - 3:15 AM
|
|
|
Hans Bergmeister
|
Jul 15, 2007 - 6:08 AM
|
Hello,
with Prof-UIS 2.70 we encounter the following repaint problem:
1. Built one of your samples, e.g. PageNavigator, in release mode.
2. Run the sample.
3. Drag another window (e.g. the Windows Explorer) over the surface of the sample.
->
Repainting takes places with a certain delay. If you manage to drag the other window (here the Explorer) over the surface of the sample smoothly and without stopping, you will be able to prevent the sample from being repainted accordingly for a few seconds (!) and until the other window leaves the area of the main window of the sample completely.
|
|
Technical Support
|
Jul 16, 2007 - 1:32 PM
|
Non-smooth painting effects may appear only when the Office 2003 and newer paint managers are applied. This is caused by compound gradient painting algorithms implemented in the Prof-UIS paint manager components. Of course, some components are fast when some components are heavy so the CPU speed is important. We tried the sample on AMD Athlon 3000+. The entire painting is not slow and we believe the problem is not so critical.
|
|
Hans Bergmeister
|
Jul 17, 2007 - 4:04 AM
|
Hello,
some additional information:
The following has been tried with the PageNavigator sample:
1. While "wiping" a foreign (!) window (e.g. the windows file explorer) over a child window of the sample (e.g. the CExtPageNavigatorWnd window), then this window may not receive a WM_PAINT message for several seconds.
2. This does NOT occur, when the "About Box" of the sample itself is "wiped" over the window. In this case everything looks perfectly.
3. This problem occurs only with the Office 2007 theme, but not with other themes (especially not with the Office 2003 theme).
Thus I cannot completely agree with your response. First only Office 2007 seems to be affected (and not "Office 2003 and newer" as you stated in your response) and second and much more important: if this were actually caused by compound gradient painting algorithms, then the problem would occur also, if an owned dialog box (e.g. the "About Box" of the sample itself) is being "wiped" - do you agree?
There must be something specific in the Office 2007 theme, that prevents child windows like the CExtPageNavigatorWnd and other child windows from receiving WM_PAINT messages, while a window of another (!) application is being "wiped" over it.
|
|
Hans Bergmeister
|
Jul 17, 2007 - 1:36 AM
|
Hello,
there seems to be a misunderstanding: in the sample we sent to you by email we managed to prevent the sample from being repainted for more than 30 seconds.
Thus, the actual problem is not, that painting is slow, but that it doesn’t take place at all (!) in certain situations.
>> we believe the problem is not so critical. << Well - this is "only" a visual effect. But the reasons to use Prof-UIS are also "only" visual. In a product, where improving the visual appearance is the main purpose, every visual problem can be "critical".
We tried the same with some CODEJOCK samples. They do NOT show this problem! May I take your answer as that you are happy with the status quo?
|
|
Ulrich Ludwig
|
Jul 13, 2007 - 4:22 AM
|
Dear Support Team,
We are using the CExtGridCellPicture in a CExtReportGrid . The Image modes CExtGridCellPicture::eTile and CExtGridCellPicture::eStretch are working fine, but there seem to be problems with CExtGridCellPicture::eAlign . No matter what styles are set with __EGCS_TA_HORZ_xxx and __EGCS_TA_VERT_xxx , the picture always stretches. Can you reproduce this behavior?
The goal we want to finally reach is to display the (big) image as a shrinked image with correct aspect ratio in the grid cell. Is this possible with CExtGridCellPicture ?
Thank you very much in advance, Uli
|
|
Technical Support
|
Jul 13, 2007 - 11:46 AM
|
Unfortunately at the moment CExtGridCellPicture does not support proportional resizing of the image. It seems we need to add a new style. We will implement this as soon as possible and notify you when it is ready.
|
|
Offer Har
|
Jul 12, 2007 - 6:30 AM
|
Dear Support,
I have a cell that displays only color: CExtGridCellColor::eNone . I would like the color’s rectangle to fill the cell. How can this be done?
Thanks, Ron.
|
|
Technical Support
|
Jul 12, 2007 - 9:24 AM
|
You can override the CExtGridCell::OnPaintBackground() method and paint the cell background with the currently specified color yourself.
It seems the CDemoColoredCell class in the SimpleGrids sample is exactly what you are looking for. The instances of this cell class are created in the first column of the grid control under the Colors tab. The second and third columns of this grid control contain cells with check marks and combo boxes, which allow you to customize the text/background color of the CDemoColoredCell objects.
|
|
Mike Van Duzee
|
Jul 10, 2007 - 7:43 AM
|
Does anyone have any experience running a Prof-UIS application with the WinRunner automated testing application? WinRunner does not recognize the Prof-UIS menus which is causing some problems.
|
|
Darren Oliver
|
Sep 5, 2007 - 9:34 AM
|
Hi Mike, I was able to use WinRunner 8.2 to test some parts of the application I am working on. Needed to define some virtual objects, and retrieved values by grabbing text from the whole screen and using the split command to ’extract’ what was needed. Easiest way is to just use the "record" feature, do a few steps, then try to parameterize the code for automation. If the GUI Spy doesn’t recognize the object (in most cases), then you have to code a workaround and use the virtual object wizard. This makes the GUI Map a chore to maintain and it is time consuming to do so.
Good luck!
|
|
Technical Support
|
Jul 11, 2007 - 9:03 AM
|
Actually Prof-UIS menus are not based on the Windows menus. They have much more features and are not compatible with HMENU windows. Prof-UIS menu items are based on CExtCmdItem command description objects stored in a CExtCmdProfile command profile in the CExtCmdManager command manager (The latter can be accessed with the g_CmdManager global smart pointer variable). This design allows Prof-UIS menus and toolbars to automatically share command parameters between different interface objects. So this technique may make Prof-UIS menus inaccessible from third party applications like WinRunner.
|
|
Jia Hong Li
|
Jul 9, 2007 - 11:00 AM
|
If I set "Trandition Chinese" in Non-Unicode of Region and language, and build the project using ProfUIS library, and VS2005 will crash.
I post this problem before.
ProfUIS will never fix this problem ?
|
|
Technical Support
|
Jul 9, 2007 - 12:00 PM
|
As we said earlier this problem is caused by a bug in the Visual Studio 2005 C++ compiler, when the resources of some languages (i.e. Czech, Lithuanian and Turkish) cause Visual Studio 2005 to crash when you compile Prof-UIS using a Unicode configuration on an East Asian Windows (e.g. Chinese) or on an English Windows but with an East Asian language set as the language for non-Unicode programs (in the Windows Regional and Language Options dialog). In other words, you have a very ordinary resource file. You try to compile this file in VS 2005 under the above mentioned conditions and VS 2005 crashes.
You can easily workaround this problem by compiling Prof-UIS on an English OS or by temporarily switching to the English locale: Change the OS language to English (Control Panel | Regional and Language Options | Advanced), compile Prof-UIS and then return the settings back. Or you can simply exclude those resources and the problem will be gone.
We are interested in your opinion. We can fix this issue by providing the precompiled resources (with the installer) so that you will not have to compile these resources yourself. In this cases, Visual Studio will compile these resources and the problem will be gone. What do you think?
|
|
Jia Hong Li
|
Jul 9, 2007 - 2:34 PM
|
|
|
Technical Support
|
Jul 10, 2007 - 12:31 PM
|
Please download it and unpack it into the ../Prof-UIS/ProfUISDLL/ folder. This ZIP file contains a ProfUISDLL.res file (compiled Prof-UIS resources) and the updated version of the ProfUISDLL_800.vcproj project, which is to the original one but it includes a reference to the ProfUISDLL.res file instead of the ProfUISDLL.rc2 file.
After this update you should be able to re-build any configuration of the ProfUISDLL project and your projects successfully.
|
|
Debabrata Mukherjee
|
Jul 9, 2007 - 7:20 AM
|
I have a splitter window which is created like the following code snippet.
if (!m_wndSplitter.CreateStatic(this, 1, 2)) { throw new CSa_Exception(SAIS_CAT_INTERNAL_ERROR, SAIS_E_MAINFRM_CREATE_CLIENT_SPLITTER); }
if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CSaIsBinsView), CSize(200, 50), pContext)) { throw new CSa_Exception(SAIS_CAT_INTERNAL_ERROR, SAIS_E_MAINFRM_CREATE_CLIENT_BINS_VIEW); }
I need to have a dockable window instead of that splitter window. I have some adjacent windows with this splitter (all are the splitter windows) What would be the possible way to make the previous window a dockable one, without making any changes to the rest. or if changes are required what are they?
if(!m_wndFrame.Create(NULL,"ABC",WS_CHILD, rect,this,NULL)) { throw new CSa_Exception(SAIS_CAT_INTERNAL_ERROR, SAIS_E_MAINFRM_CREATE_CLIENT_SPLITTER); } CRuntimeClass *pRTC0 = RUNTIME_CLASS( CSaIsBinsView ); CView *pView0 = STATIC_DOWNCAST( CView, pRTC0->CreateObject() );
if( !pView0->Create(::AfxRegisterWndClass(0),_T(""),WS_CHILD | WS_VISIBLE,CRect(0,0,0,0), this,AFX_IDW_PANE_FIRST, NULL )) { TRACE0("Failed to create view window\n"); ASSERT( FALSE ); return -1; }
CSaIsBinsView *pYourView0 = STATIC_DOWNCAST( CSaIsBinsView, pView0 );
if(!m_wndFrame.CreateView(pContext,AFX_IDW_PANE_FIRST)) { throw new CSa_Exception(SAIS_CAT_INTERNAL_ERROR, SAIS_E_MAINFRM_CREATE_CLIENT_BINS_VIEW); }
I have used this piece of code but in that case what will be the value of "AFX_IDW_PANE_FIRST" (This piece of code is used for creating a tab window) .What should be the resource id for a view which can be placed over a frame window. This view(CSaIsBinsView) is created in a separate file.
|
|
Technical Support
|
Jul 9, 2007 - 10:03 AM
|
You have a splitter window and two views created as its panes. If you want to move one of views to a control bar, then the splitter is no longer needed because it is not designed as a container for only one view. The second view should simply become the main view in its frame window. So the splitter window should be removed completely.
|
|
Debabrata Mukherjee
|
Jul 9, 2007 - 12:30 PM
|
Like we have mentioned earlier, the splitter window, if removed gives us too many debug assert errors. May b it has something to do with resource, can u let us know what is the correct way of giving a resource id for a View, bcoz we are not very sure abt it.
|
|
Debabrata Mukherjee
|
Jul 9, 2007 - 6:17 AM
|
Earlier my application had buttons being created from object of class derived from CBitmapButton class ,but after I derived the class from CExtButton class the buttons are getting created but the icons are not loaded when the application starts i.e. the buttons are not showing.
for profile set up i have written this code: HINSTANCE hInstResource =AfxFindResourceHandle(MAKEINTRESOURCE(IDB_SABINS_BSW_PARTS_ACTIVE ), RT_GROUP_ICON); ASSERT( hInstResource != NULL ); HICON hIcon = (HICON)::LoadImage(hInstResource,MAKEINTRESOURCE(IDB_SABINS_BSW_PARTS_ACTIVE ), IMAGE_ICON,16,16,0); ASSERT( hIcon != NULL ); SetIcon( hIcon, FALSE ); CWinApp * pApp = ::AfxGetApp(); ASSERT( pApp != NULL );
//The command manager is a key global object in Prof-UIS. Registering the commands in it. // is neccesary .This needs to be done at CMainFrame::OnCreate () method: g_CmdManager->ProfileSetup(pApp->m_pszProfileName,GetSafeHwnd());
VERIFY(g_CmdManager->ProfileWndAdd(pApp->m_pszProfileName,GetSafeHwnd())); VERIFY(g_CmdManager->CmdSetIcon(pApp->m_pszProfileName,IDB_SABINS_BSW_PARTS_ACTIVE,hIcon,FALSE )); // VERIFY(g_CmdManager->UpdateFromMenu(pApp->m_pszProfileName,IDB_SABINS_CONTROL_BITMAP ));
and fro creating the buttons I wrote this one::
if (!m_abtnParts.Create("Parts", BS_PUSHBUTTON | BS_OWNERDRAW, rect, this, IDC_SABINS_BSW_PARTS)) { throw new CSa_Exception(SABINS_CAT_INTERNAL_ERROR, SABINS_E_CREATE_BSW_PARTS); }
it is throwing some debug assertion error
Please guide me in this regard
|
|
Technical Support
|
Jul 9, 2007 - 9:24 AM
|
Please let us know if you are using the CExtButton::SetIcon() method to associate an icon with the button?
|
|
Debabrata Mukherjee
|
Jul 9, 2007 - 12:25 PM
|
ya we are using SetIcon method, but simply we are not getting the correct way to do it. Could you please let us know. What we are getting is simply an empty bar w/o any empty button also.
|
|
Technical Support
|
Jul 10, 2007 - 12:13 PM
|
Where are you using the button? Is it a push button on a dialog or on a toolbar? Here is the code form the Prof-UIS_Controls sample that assigns an icon to the push button. You can use this code in your project. m_btnPushButton.m_icon.AssignFromHICON(
(HICON) ::LoadImage(
::AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDI_NOTEPAD),
IMAGE_ICON,
48,
48,
0
),
false
);
|
|
Ian McIntosh
|
Jul 9, 2007 - 6:02 AM
|
Hi, I have a CExtLabel that is used to display a bitmap on a dialog derived from CExtResizableDialog. The bitmap is set using SetBitmap(). It displays correctly until the dialog is resized. When resized, all other controls are drawn but the bitmap is not. The same happens if the dialog is minimised & restored, or hidden by another app then brought to the front.
|
|
Ian McIntosh
|
Jul 9, 2007 - 9:32 AM
|
The CExtLabel is not on a group box, and also has a tab order number of 1.
|
|
Technical Support
|
Jul 9, 2007 - 10:09 AM
|
Would you reproduce this problem using one of the Prof-UIS samples? By the way, why do not use CStatic instead of CExtLabel if you show a bitmap only?
|
|
Technical Support
|
Jul 9, 2007 - 9:22 AM
|
|
|
Rado Manzela
|
Jul 7, 2007 - 7:15 AM
|
How can I add thme support to CListBox (including scroll bars)? Thank you!
|
|
Technical Support
|
Jul 8, 2007 - 2:43 PM
|
There is no enhanced version of CListBox in Prof-UIS. But there is a really good replacement, CExtGridWnd or CExtReportGridWnd , which not only more feature rich but also theme consistent.
|
|
Rado Manzela
|
Jul 7, 2007 - 7:14 AM
|
I’m using CExtGridCellCombo cell in the property grid. When it contains lot of items, the combo list box scroll bar looks like old windows scrollbars. How to draw fully themed combo box? Thank you!
|
|
Technical Support
|
Jul 9, 2007 - 9:38 AM
|
We are sorry but this feature is not supported at the moment.
|
|
Juri Tsjornoi
|
Jul 6, 2007 - 12:32 AM
|
Can you tell me please, how to set custom width to the scroll bars? I use skinned scroll bars (which are used in your example SkinnedScrollBars), and I would like to make them smaller (in width).
|
|
Technical Support
|
Jul 6, 2007 - 9:02 AM
|
You can change the scroll bar metrics by overriding the CExtScrollBar::_ScanSysMertics() internal virtual method. Your method should invoke the parent class method and re-initialize the m_nHorzBarHeight and m_nVertBarWidth properties of the CExtScrollBar class.
|
|
Juri Tsjornoi
|
Jul 6, 2007 - 12:27 AM
|
How to apply the current Prof-UIS UI theme to non-Prof-UIS supported controls? In my example, I have a list control (CListControl) inside a dialog box (CExtResizableDialog), UI theme is Luna Blue Office 2007, and I’d like to apply it to the list control header in "Details" view of list control. By default it’s drawn with a standart system theme.
|
|
Technical Support
|
Jul 6, 2007 - 7:05 AM
|
Although there is no enhanced version of CListCtrl in Prof-UIS, there are much more feature rich controls, CExtGridWnd or CExtReportGridWnd , which can be used instead. Besides these classes are fully consistent with Prof-UIS themes.
|