|
I suggest you *wink wink* cough up US$79 - a laughably small price for a great productivity improvement.
Don't you yourself earn your income (or plan to) from the fact that others pay for your efforts?
Bernd
|
|
|
|
|
Here is my problem:
In order to use GetOpenFileName I use a OPENFILENAME structure which has a member variable called lStructSize.
In MSDN I am advised to use sizeof(OPENFILENAME) to initialize this one IF WINDOWS IS WIN2000 OR LATER!!!
otherwise I should use OPENFILENAME_SIZE_VERSION_400.
All is fine. I determine which type of Windows is my app running and use different initializations but this
OPENFILENAME_SIZE_VERSION_400 seems undefined! What can I do?!
TNX!
|
|
|
|
|
OPENFILENAME_SIZE_VERSION_400 is defined in <commdlg.h>
Call GetVersion[Ex] to determine which version of Windows your application is running on then set the lStructSize field of the OPENFILENAME accordingly.
Regards,
|
|
|
|
|
It doesn't work!
My commdlg.h header file supplied with VC++6 does *not* include this definition at all. In fact no .h file from my distribution doesn't contain it. In a moment of desperation I searched brute-force-style ALL files on the hard drive for this string. None. Except cache files of Opera (web browser and text files that I wrote).
Let's say I might (??!) have an incomplete distribution of this Visual Studio. What if I would nicely ask you if you could tell me the number value of this constant?
It's probably unnecessary to tell you how to do that.
Thank you.
PS: Could it be the fact that I don't really like C ?!? Maybe it has a mind of its own and senses my hate?
|
|
|
|
|
had the same problem.
#if (_WIN32_WINNT >= 0x0500) && !defined(OPENFILENAME_SIZE_VERSION_400)<br />
#ifndef CDSIZEOF_STRUCT<br />
#define CDSIZEOF_STRUCT(structname, member) (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0)))) + sizeof(((structname*)0)->member))<br />
#endif<br />
#define OPENFILENAME_SIZE_VERSION_400A CDSIZEOF_STRUCT(OPENFILENAMEA,lpTemplateName)<br />
#define OPENFILENAME_SIZE_VERSION_400W CDSIZEOF_STRUCT(OPENFILENAMEW,lpTemplateName)<br />
#ifdef UNICODE<br />
#define OPENFILENAME_SIZE_VERSION_400 OPENFILENAME_SIZE_VERSION_400W<br />
#else<br />
#define OPENFILENAME_SIZE_VERSION_400 OPENFILENAME_SIZE_VERSION_400A<br />
#endif // !UNICODE<br />
#endif // (_WIN32_WINNT >= 0x0500) && !defined(OPENFILENAME_SIZE_VERSION_400)
found it on http://codeworks.gnomedia.com/wtl/wtldocs/atldlgs_8h-source.html
hope it will help.
greetz
tib
----------------------------------------------------------
I once had a nightmare in binary --- I think there was a 2
|
|
|
|
|
I am thinking about purchasing Visual Studio.Net and would like to know if there is a cheaper version of VS.Net since I can't afford an $899 product. I am a student though, I just want to transfer to new technologies... Is there a cheaper way of getting visual studio.net?
Actual Linux Penguins were harmed in the creation of this message.
|
|
|
|
|
|
I know how to implement different UI controls but how can I owner draw them, I never thought about how useful they could be, though they are visually appealing in some cases, can anyone would recommend some article about how to make owner drawn controls, maybe websites...
Actual Linux Penguins were harmed in the creation of this message.
|
|
|
|
|
|
How can I debug a vbscript macro in Visual Studio 6. How can I set the Macro tab of the Output window?
Thanks
|
|
|
|
|
Try posting it in the VB part of the message forums, since this part deals with visual c++.
Actual Linux Penguins were harmed in the creation of this message.
|
|
|
|
|
Hi,
1. I have put a TabControl inside a formview in the MFC-SDI application. If I resize the window I want the tab control to always fit in the window (that means if I make the window bigger the control inside will become bigger and if I make the window smaller I want the control to get smaller). Please advise how I can do that?
2. How can I make a SDI application non-resizable?
Thanks,
|
|
|
|
|
Add a WM_SIZE handler in your view class. In it, do the following:
CRect rectView;
GetClientRect (&rectView);
m_tabCtrl.MoveWindow (&rectView);
This will cause the tab control to fill the view's client area.
/ravi
My new year resolution: 2048 x 1536
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
I used following code Onsize
but I'm getting asserting error at line 279 of winocc.cpp
CFormView::OnSize(nType, cx, cy);
CRect rectView;
GetClientRect (&rectView);
m_TabCtrl.MoveWindow (&rectView);
|
|
|
|
|
Perhaps you haven't linked m_tabCtrl to the tab control in the dialog template? Put this line before the call to MoveWindow() :
ASSERT (m_tabCtrl.GetSafeHwnd() != NULL);
to ensure that m_tabCtrl has been properly created before you try to resize it.
/ravi
My new year's resolution: 2048 x 1536
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
It worked. Thanks.... I have another similar question
I have two tree controls attached to the tabs in the tab control. To fit the tree control in the tab control what should I do? 'cause I can't write the wm_size handler for the tabcontrol as I'm adding the tree controls in the formview, not in the tabcontrol class.
|
|
|
|
|
I think you might be confusing a CTabCtrl with a CPropertySheet . A CTabCtrl doesn't "contain" child dialogs or controls - all it does is allow the user to select a tab. A tab control's parent receives notifications when the current tab selection changes.
That being said, what you probably want to do (to mimic the behavior of a CPropertySheet ) is to create a bunch of child controls/dialogs (whose common parent is your view), one of which is displayed in response to the change in the currently selected tab. You'll also need to check the "Transparent" attribute of the tab control so that it doesn't hide the child controls/dialogs. The appropriate control/dialog is displayed in response to a change in the currently selected tab in the following manner:
CWnd* pDisplayedWnd = NULL;
m_treeCtrl_1.ShowWindow (SW_HIDE);
m_treeCtrl_2.ShowWindow (SW_HIDE);
int nCurTab = m_tabCtrl.GetCurSel();
switch (nCurTab) {
case 0:
pDisplayedWnd = &m_treeCtrl_1;
break;
case 1:
pDisplayedWnd = &m_treeCtrl_2;
break;
default:
ASSERT (FALSE);
break;
}
ASSERT (pDisplayedWnd != NULL);
pDisplayedWnd->BringWindowToTop();
pDisplayedWnd->ShowWindow (SW_SHOW);
pDisplayedWnd->Invalidate();
pDisplayedWnd->UpdateWindow();
pDisplayedWnd->BringWindowToTop();
pDisplayedWnd->SetFocus();
If this is too much work, you might want to consider using a CPropertySheet . See the examples at CP if you need help.
/ravi
My new year's resolution: 2048 x 1536
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
Don't forget to call SetScaleToFitSize(cx, cy) at he end of your OnSize() procedure otherwise you will get scroll bars shown if the client rectangle size is smaller than the size of the dialog template used to create the form view from.
Roger Allen - Sonork 100.10016
Roger Wright: Remember to buckle up, please, and encourage your friends to do the same. It's not just about saving your life, but saving the quality of life for those you may leave behind...
|
|
|
|
|
I'm using a formview here, setscaletofitsize() is for the scrollview. can you please tell me how I can use it for the scroller in the formview?
|
|
|
|
|
worked
SIZE sizeTotal;<br />
sizeTotal.cx= cx;<br />
sizeTotal.cy= cy;<br />
CScrollView::SetScaleToFitSize( sizeTotal);
|
|
|
|
|
Dear all,
In Windows 2000/XP platform, we can easily get this information from function DeviceIoControl with code IOCTL_DISK_GET_DRIVE_LAYOUT. However, in Windows 98/Me, we failed. We all know that most of the fields in this struct are located at MBR and the first sector of each partition.
typedef struct _DRIVE_LAYOUT_INFORMATION {
DWORD PartitionCount;
DWORD Signature; // ********
PARTITION_INFORMATION PartitionEntry[1];
} DRIVE_LAYOUT_INFORMATION;
typedef struct _PARTITION_INFORMATION {
LARGE_INTEGER StartingOffset;
LARGE_INTEGER PartitionLength;
DWORD HiddenSectors;
DWORD PartitionNumber;// ********
BYTE PartitionType;// ********
BOOLEAN BootIndicator;// ********
BOOLEAN RecognizedPartition;// ********
BOOLEAN RewritePartition;// ********
} PARTITION_INFORMATION, *PPARTITION_INFORMATION;
Unmarked fields are got easily from partition entries in MBR and the first sector of each partition. The marked ones are unknown. Therefore, my question is how to get those marked fields? I mean the other ways to get that information in Windows 98/Me platform. Thank you very much.
Best regards.
Tuan Dang.
____
Tuan
|
|
|
|
|
I have a program that runs as a service. It needs to run a program under another user's account. The service will have access to a username/password. The service, of course, is running under the System account.
I have investigated CreateProcessAsUser, but for the life of me I cannot get it to work as expected! I can use LogonUser to get a token, and then pass it to CreateProcessAsUser, which dutifully runs the program and returns no errors, but from all observations, the program does not seem to run under the right account.
Any ideas? I'd post code, but it is pretty bulky. I got it from an article here on CP about a Telnet server. OR just to test, is there a relatively easy way I could, say, print the name of the user I'm running the code as, or some other sure-fire test?
This service may be running with or without the given user logged on, so I'm not sure if that makes a difference.
Thanks.
"I'd be up a piece if I hadn't swallowed my bishop." Mr. Ed, playing chess
|
|
|
|
|
Maybe this is at a tangent to what you're asking ...
What privileges does your service have ?? - My security handbooks are at home, but I would have thought to be able to do this you would need higher privileges than a standard account (or the local system account) ..
'G'
|
|
|
|
|
It would seem odd to need higher priveleges than the standard System account... doesn't that have pretty much everything?
And then who'd be able to set the system account privileges? Granted, I wouldn't be surprised if this were the case... although that would pretty much sink any hopes I'd have of implementhing this idea.
"I'd be up a piece if I hadn't swallowed my bishop." Mr. Ed, playing chess
|
|
|
|
|
AFAIK, CreateProcessAsUser and LogonUser need the following four privileges: SeIncreaseQuotaPrivilege, SeAssignPrimaryTokenPrivilege, SeChangeNotifyPrivilege, and SeTcbPrivilege
Im just looking for some articles that may help you ...
'G'
|
|
|
|