|
You need to overide: CChildFrame::OnUpdateFrameTitle(). You do the same thing in your CMainFrame to take control of the app title bar. That's what I do in ED (see sig).
Neville Franks, Author of ED for Windows. www.getsoft.com
Make money with our new Affilate program
|
|
|
|
|
Hi
I need help in knowing the (left) mouse key status in OnKillFocus(). The reason is I need to know if the Left mouse key has been clicked and thus causing my dialog to kill focus. If so, I need to clean up some data otherwise nothing is done.
Please help. Thanks
|
|
|
|
|
I assume you want to know if the user clicked [X]. If that is the case you are better to use code like the following:
BOOL
CDockTabsView::MouseOnCloseButton()
{
BOOL bStat = FALSE;
if ( IsWindowVisible() )
{
CWnd* pDockFrame;
POINT point;
GetCursorPos( &point );
if ( ( pDockFrame = WindowFromPoint( point ) )->IsChild( this ) )
{
UINT nHitPos = pDockFrame->SendMessage( WM_NCHITTEST, 0, MAKELPARAM( point.x, point.y ) );
bStat = nHitPos eq HTCLOSE;
}
}
return bStat;
}
If you really want to know if the left button is down use:
BOOL
IsLButtonDown()
{
return KEY_DOWN( GetAsyncKeyState( GetSystemMetrics( SM_SWAPBUTTON ) ? VK_RBUTTON : VK_LBUTTON ) ) ne 0;
}
Neville Franks, Author of ED for Windows. www.getsoft.com
Make money with our new Affilate program
|
|
|
|
|
I'm trying to use a form I created in C# in a VC++ program I am creating. (Descriptive subject, no?) I have the C# compiling into a DLL and ... well that's about as far as I can get. I've done some reseach in the MSDN, and it shows how to use console classes, but nothing about how to use a form created in C#. I don't have the code on this computer, but the method I found I was trying last was using the following code (Close as I can 'member)
#using <mscordb.dll>//However main CLR dll is spelled.
#using "MyCSharpDLL.dll"
using namespace MyCSForm;//I tried it with and without this
//line and it didn't work either way, so I show it.
That's about where I get to. I also try to create an object of the class in the name space using either
MyForm Form1;
OR
MyCSForm::MyForm Form1;
Depending on if I use the "using namespace MyCSForm;" line or not.
I have also tried to using a slightly more complex method, one that is used to load functions from a DLL. I use that method to pull things out of a C++ dll that uses dllexport to say what comes out. That method can load the C# DLL but I can't figure out what I would be trying to load from it. Tried and failed to do the form, and main and even the namespace. None worked. At least I don't know how to get them to work.
Any help would be appreciated and if you have question I will answer them to the best of my abilities. And if I am going all wrong on how to load a DLL made in C# into C++, please point me in the right direction. Thanks.
Note: I'm sorry if I seem to be flooding the forum, but I'm not sure which of the three (Visual C++, Managed C++, C#) I am posting this in would be the best place for it. Since it deals with all three of them, I believe.
Thank you again for any help.
The wisest of the wise may err. - Aeschylus
|
|
|
|
|
Friends,
What is the difference b/w MBCS and UNICODE. I am new to Windows programming and i started programming an year ago on console mode using DOS compiler. There i studied that a 'character' is of one byte size. Can any one tell me that in Windows, character is of what size and if the size of character is two bytes in MBCS then why is it different from Unicode.
|
|
|
|
|
|
Which API do you use to determine the privilege level(Admin/Power user/restricted user/quest) of the current user? I want my application to abort if the user is not an administrator(on Win9x/2k/xp)... Thanks.
|
|
|
|
|
|
VC++6.0 says IsUserAnAdmin is undeclared identifier, I need to upgrade my sdk?
|
|
|
|
|
|
I installed the newest plateform sdk and included "shlobj.h", still undeclared identifier... what else am I missing?
|
|
|
|
|
Hello Abin
I have VC++ 2003 and I chk'd my shlobj.h. I dont have it either
The only way to use this function now is to use LoadLibrary and GetProcAddr.
For the fucntion prototype go to this URL :-
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/isuseranadmin.asp
Thanks,
Nish
p.s. Sorry about the earlier answers. I never expected the dumb PSDK to be so much out of date
Author of the romantic comedy
Summer Love and Some more Cricket [New Win]
Review by Shog9
Click here for review[NW]
|
|
|
|
|
Ok I'll try that, thanks for your help.
|
|
|
|
|
Abin
Try this code out :-
#include <windows.h>
#include <tchar.h>
typedef BOOL (*ISUSERADMIN)();
int __stdcall _tWinMain(HINSTANCE hInstance, HINSTANCE, LPTSTR, int)
{
HINSTANCE hInst;
ISUSERADMIN proc;
hInst = LoadLibrary("shell32.dll");
if(hInst)
{
proc = (ISUSERADMIN) GetProcAddress(hInst, "IsUserAnAdmin");
if(proc)
{
if(proc())
{
MessageBox(NULL,"Admin user","",MB_OK);
}
else
{
MessageBox(NULL,"Non-Admin user","",MB_OK);
}
}
}
return 0;
}
And sorry once again for initially confusing you
Nish
Author of the romantic comedy
Summer Love and Some more Cricket [New Win]
Review by Shog9
Click here for review[NW]
|
|
|
|
|
If you know user possible membership... NetUserGetGroups/NetGroupGetUsers.
If you don't, then ... do whatever, and if it failes -> no privs.
|
|
|
|
|
Hi,
I need my appl generates boot disc (Win98 alike), no matter what OS it's running into. I tried to copy the files from a Win98 disc boot to some folder and make my appl to copy them to the disc. But the disc doesn't boot
Please, can anybody help?
Thank u very much,
Dirso
|
|
|
|
|
Depends on what of several types of boot disks you want to create. I found some stuff at this place, but I haven't tried anything it mentions, why I shouldn't be flamed if anything breaks.
|
|
|
|
|
Hi,
I found something in the place u told me. But it depends on the OS used and i need to call the "system" function and this is not too good, but it works! If u find out something about creating boot discs without "system" calling, i'd be very grateful!!!
Thank u very much,
Dirso.
|
|
|
|
|
I am looking into designing a small application to
supplement my research work on another, larger, project.
The larger project is being used in a clinical environment
and needs to have some security.
What I need to know is:
Can you hook a process and pause it an instant after it
executes?
For example - say I double-click on Internet explorer (or some other app), can I have a system-wide hook that catches the initialization of the app and then have it pause execution
of Internet explorer (or any other app) while some processing
is carried out.
When the processing is finished, is it possible to either terminate
IE or continue with its execution?
Is this a feasible idea?
TIA.
|
|
|
|
|
Write a shell execute extension (see IShellExecuteHook in MSDN). The shell will call your extension before it runs a program. When you get called, run the program yourself but make the thread suspended initially.
This doesn't work for all app launches though, only launches done via the shell (Explorer)
--Mike--
THERE IS NO THERE IS NO BUT THERE IS
MAGIC PIXIE DUST BUSINESS GENIE CODE PROJECT
Homepage | RightClick-Encrypt | 1ClickPicGrabber
"Which comes first, the bug or the stress?" -- Chris Maunder
|
|
|
|
|
Not sure I follow exactly...
Are you saying that I need to add the hook to the app
that I want to suspend?
Also, I presume this will only work if the executable is
double-clicked from Windows Explorer?
Is there no way to do this with something like a TSR that
will watch for a particular process and catch that running
process and halt it?
|
|
|
|
|
Take a look at this article[^]. Hook the functions CreateProcessA and CreateProcessW (in KERNEL32.DLL) for the whole system. When your functions get called, perform your processing, then call the default function. I think it should work well enough.
Chris Richardson
You can stash and you can seize
In dreams begin, responsibilities U2 - Acrobat[^]
Stop being PC and accounting for everyone and his momma's timeframe. Just enjoy your - Rohit Sinha in the content-challenged thread
|
|
|
|
|
I am having a very difficult time understanding exactly how regions and region handles work. I noticed in MSDN:
"After a successful call to SetWindowRgn, the system owns the region specified by the region handle hRgn. The system does not make a copy of the region. Thus, you should not make any further function calls with this region handle. In particular, do not close this region handle."
I am wondering if this is the source of my problem. I have created an owner drawn button which is round and I have found some code to scan the bmp and make a region out of it using a transparent color setting. The button loads fine but minimizing the window and restoring it brings up the color that is supposed to be transparent.
Here is the code for my WM_DRAWITEM message:
case WM_DRAWITEM:
switch(pdis->CtlID)
{
case ID_BUTTON:
hdcMem = CreateCompatibleDC(pdis->hDC);
SelectObject(hdcMem, hBitmapMin);
SetWindowRgn(hwndMinimize, hMinRgn, TRUE);
BitBlt(pdis->hDC, 0, 0, 19, 19, hdcMem, 0, 0, SRCCOPY);
DeleteDC(hdcMem);
break;
...
}
The same also happens if I click on the button but...I realized that if I omit the DeleteDC call then the button isn't altered by my clicking on it, only when minimizing. Another interesting fact is that despite the button being redrawn square the hotspot still remains in the original circle which means that the region I assigned is still there correct? But then why would the window be painted outside of it's region? Can anyone see any stupid mistakes I might be making? The code works perfect on the main application window, it's just giving me hell for my buttons. Thanks...?
P.S. The source for the region creation is here
|
|
|
|
|
(Whoops the network disapeared, so I'll try this again)
I have been ask to create an installation program, with InstallShield 2.11, that automaticaly uninstalls previous version if any. Does any one know how to do this?
Note: I know where the UninstallString is located on my system, but different version of Windows often use different locations to store same information.
Trust in the code Luke. Yea right!
|
|
|
|
|
I'm trying to get the RECT of the taskbar by calling SHAppBarMessage with the ABM_GETTASKBARPOS parameter from my NT Service. Sometimes the correct RECT is returned and sometimes only zeroes are returned. Does anyone know why? And if so, how can I always get the right RECT?
Thanks
|
|
|
|