|
How can I retrieve the desktop patterns and wallpaper displayed in the control\display pane?
|
|
|
|
|
There is a DrawDesktop api call ( that might not be the name, but it's something *like* that ).
Christian
After all, there's nothing wrong with an elite as long as I'm allowed to be part of it!! - Mike Burston Oct 23, 2001
Sonork ID 100.10002:MeanManOzI live in Bob's HungOut now
|
|
|
|
|
This registry key has a list of all the patterns
HKEY_CURRENT_USER\Control Panel\Patterns
I cant figure out where it saves the current pattern
Nish
Sonork ID 100.9786 voidmain
www.busterboy.org
Nish is a BIG fan of Goran Ivanisevic
|
|
|
|
|
Nish [BusterBoy] wrote:
This registry key has a list of all the patterns
HKEY_CURRENT_USER\Control Panel\Patterns
I cant figure out where it saves the current pattern
Open this key
HKEY_CURRENT_USER\Control Panel\Desktop
and take a look at the value "Pattern"
Now compare the value of "Pattern" with all the patterns to find out which of the named patterns is the current pattern
If there is no current patter "Pattern" will return a null string
Sonork ID 100.9786 voidmain
www.busterboy.org
Nish is a BIG fan of Goran Ivanisevic
|
|
|
|
|
For getting wallpaper info do this -
Open this key :-
HKEY_CURRENT_USER\Control Panel\Desktop
Query the following values :-
TileWallpaper [can be 1 or 0]
Wallpaper [the fullpath filename of the wallpaper]
WallpaperStyle [can be 0-for center and 2-for stretch] -- [I dont know what 1 stands for ]
Nish
Sonork ID 100.9786 voidmain
www.busterboy.org
Nish is a BIG fan of Goran Ivanisevic
|
|
|
|
|
Hi all!
I have a tree in a dialog. The dialog has other controls on it also. When I select a branch in my tree, the branch changes color (it's highlighted). If click on different control, say a button outside the tree, then the branch change color back to before it was selected(it's not highlighted any more). How do I keep its highlighted color when the tree looses focus?
Thank You
Vu
vucsuf
|
|
|
|
|
Make sure you check "Show Selection Always" in the resource editor.
|
|
|
|
|
use the TVS_SHOWSELALWAYS style
Nish
Sonork ID 100.9786 voidmain
www.busterboy.org
Nish is a BIG fan of Goran Ivanisevic
|
|
|
|
|
Help!
I'm having problems understanding. I am reading a binary file using a structure to hold the data:
MY_STRUCT myStruct
fread(&myStruct,sizeof(MY_STRUCT),1,inFp)
When I examine the elements of myStruct, it looks like data is stored correctly in the structure's data elements.
HOWEVER, when I try to read the file again, the file pointer inFp is not at the end of the just read structure -- it doesn't advance to the end of the just read block of binary data, but instead looks to be positioned half-way between the start and end of the block.
Any help? I just want to read binary data one logical block at a time.
Thanks.
Johnny
|
|
|
|
|
fread should act just as you assume - it reads and sets the fp to the place it stopped reading. check the return from fread, or call feof, to make sure you're not out past the end of the file...
-c
Smaller Animals Software, Inc.
|
|
|
|
|
That's what I thought and hence my (utter) bewilderment %-)
thanks, I'll keep trying.
|
|
|
|
|
Just a thought, as this is a problem I have encountered myself. In the debugger, try seeing what sizeof(MY_STRUCT) is and compare it to what you're expecting. I've found that the program that generates the structured files can be using a pragma pack (see MSDN for details) might result in a different value of sizeof(MY_STRUCT) than another program that is not using it.
I believe that VC++ tries to align structures to 4-byte boundaries (not sure - I'd have to check MSDN) so if it is not packed, the sizeof call could return a value larger than expected.
Hope this helps.
------------------------
Derek Waters
derek@lj-oz.com
|
|
|
|
|
To fix the byte alignment problem you can change the packing for your structure so the extra bytes are not added.
#pragma pack(push, 1)
typedef struct
{
blah
} MY_STRUCT;
#pragma pack(pop)
Todd Smith
|
|
|
|
|
Thanks.
I am using a #pragma pack as follows:
#pragma pack (push, enterImportExport)
#pragma pack (2) // 1,2,4,8,16
// Restore enterImportExport settings at end of this header file.
typedef struct
{
blah,
blah,
} MY_STRUCT;
...
typedef struct
{
blah,
} ANOTHER_STRUCT;
...
// Restore enterImportExport settings.
#pragma pack (pop, enterImportExport)
I don't think I have tried all the alignment values (1,2,4,8,16), but byte alignment did pose a problem when I was reading another binary file using ANOTHER_STRUCT -- this works.
Thanks for the suggestions. Curious on results?
Johnny
|
|
|
|
|
Ah!
I found my critical mistake. Yes, the byte-alignment would be an issue and I did account for this as my binary file read is based on a similar operation I performed successfully in the same application.
MY PROBLEM WAS in how I opened the file. I orginally was reading a text file and then when I changed to reading a binary file, I forgot to use the parameter in the fopen() statement:
fopen (sSourceFile,"rb") instead of just fopen (sSourceFile,"r")
Thanks for all those who offered help and advice.
Johnny
|
|
|
|
|
Hello,
What would be the easiest way to extract just a file name from a CString containing a full path and file name?.. I realize there are other ways of getting the file name besides parsing the string but for right now I need to extract the info from a string..
eg..
CString strPath;
strPath = "c:\\some path\\that could be deep\\this is\\file.txt";
What would be the best way to extract the "file.txt"? The problem I am having is the file is not all ways the same name and the path varies in length(depending where the file is located."
Thanks,
Rob
Rob Jones
|
|
|
|
|
You may have got the answer already, but here is what I would offer:
pos = strPath.ReverseFind('\\') and
strPath.Right(pos)
It would be proper to test if strPath actually is in the format you expect, i.e. DriveName:\...\filename.extension
a slick routine would except:
c:\filename.ext
c:\dir1\filename.ext
filename.ext
Good luck.
|
|
|
|
|
Take a look at the MFC routine AfxGetFileName. You probably can't use it directly, but you can lift the code and use it in your app.
Tim Smith
Descartes Systems Sciences, Inc.
|
|
|
|
|
You can USe _splitpath
Or if you want to use only MFC and CString
I will do this
strPath = "c:\\some path\\that could be deep\\this is\\file.txt";
strPath.MakeReverse();
strFileName = strPath.Rigth(strPath.Find('\\'));
strFileName.MakeReverse();
test because I wrote directly over CP....
Best Regards....
Carlos Antollini.
Sonork ID 100.10529 cantollini
|
|
|
|
|
|
Use PathFindFileName() from shlwapi.dll.
--Mike--
http://home.inreach.com/mdunn/
While I can't be correct on all matters, I can make the reassuring claim that where I am inaccurate, I am at least definitively inaccurate.
your with and
Sonork - 100.10414 AcidHelm
|
|
|
|
|
Hi all!
I have enums defined in groups as shown below:
typedef enum myType
{
TYPE_UNKNOWN = 0,
// 1 - 19
TYPE_START = 1,
TYPE_OK,
// 20 - 99
TYPE_ERROR=20,
TYPE_BADDATA,
TYPE_BLAH
// 100 -- 199
TYPE_HELP1=100,
TYPE_HELP2,
TYPE_HELP3
}myType;
I want to use the switch statement which could break the above into certain range they fall in, instead of doing:
switch( nMyType )
{
case TYPE_UNKNOWN:
break;
case TYPE_START:
break;
case TYPE_ERROR:
case TYPE_BADDATA: // I dont want to list each and every case
// b'cause i will be having a lot of them at some point
break;
default:
break;
};
Rather, I am looking for something like:
switch( nMyType )
{
case TYPE_START to TYPE_OK: // ie. 1-19
// I will be calling appropriate routines to handle the explicit
// case
break;
case TYPE_ERROR to TYPE_BLAH:
break;
default:
break;
};
Currently I have a IF else condition for the above ranges, Just wondering can I have the range in a switch statement?
I'll appreciate any hint/help!
thx
kpsr
|
|
|
|
|
switch(n)
{
case 0:
DoSomething();
break
case 1:
case 2:
case 3:
case 4:
DoSomething2();
break;
}
Best Regards
and for ever in CP
Carlos Antollini.
Sonork ID 100.10529 cantollini
|
|
|
|
|
Carlos,
Didn't really solve my purpose.
As I said in my earlier message, I do not want to list out individual cases, since there will be a lot.
I want to get a range like,
if( n > 1 || n < 10 )
DoSomething(n);
else if( n > 10 || n < 200 )
DoSomething2(n);
else if( n > 200 || n < 300 )
DoSomething3(n);
else
DoSomething4(n);
But, was wondering If I could do it using the switch statement by any means?.
thx
kpsr
|
|
|
|
|
You don't have condition in a Switch case. Only have values in the case...
The best is use
if(condition0)
{
}
else if(condition1)
{
}
else
{
}
I'm sorry...
Best Regards
Carlos Antollini.
Sonork ID 100.10529 cantollini
|
|
|
|