|
Hi everyone. anyone knows how to create a trackbar in visual c++ using Win32 API?? I dont know what header file to include. Thanks in advance.
AmanN
|
|
|
|
|
You need to include commctrl.h and link with comctl32.lib. You create a trackbar pretty much the same as any other control
InitCommonControls();
hwndTrack = CreateWindowEx(
0,
TRACKBAR_CLASS,
"Trackbar Control",
WS_CHILD | WS_VISIBLE |
TBS_AUTOTICKS | TBS_ENABLESELRANGE,
10, 10,
200, 30,
hwndDlg,
ID_TRACKBAR,
g_hinst,
NULL
);
You can find a wealt of information here[^] regarding track bars and how to use them.
|
|
|
|
|
|
If I am to add an IE favourite programmaticallly
- is there an IE API?
- where are the favourites stored in registry?
thanks!
|
|
|
|
|
|
I used MFC AppWizard->Selected Single Document Interface-> and all nexts then clicked ok at step six using Visual Studio 6.0.
I then put this following code in the OnDraw() function in FilenameView.cpp.
I didn't change any other codes than this.
void CWoosooView::OnDraw(CDC* pDC)
{
CWoosooDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
///////////////////////
// MY CODE STARTS HERE
///////////////////////
///////////////////////////////////////
// i tried to make a pointer and put in some numbers 0~255 to make a rectangle pyramid.
///////////////////////////////////////
int size;
unsigned char *p;
p = (unsigned char*)malloc(size*size);
for(int y = 0; y<size; y++)
{
="" for(int="" x="0;" x<size;x++)
{
="" if="" ((x="">=0 && x<(size/2))&&(y>=0 && y<(size/2)))
*(p+size*y+x) = (x+y);
else if ((x<size &&="" x="">=(size/2))&&(y>=0 && y<(size/2)))
*(p+size*y+x) = (size-x+y-1);
else if ((x>=0 && x<(size/2))&&(y<size &&="" y="">=(size/2)))
*(p+size*y+x) = (size+x-y-1);
else if ((x<size &&="" x="">=(size/2))&&(y<size &&="" y="">=(size/2)))
*(p+size*y+x) = (2*size-2-x-y);
}
}
////////////////////////////////////
CBitmap bitmap; // i made a bitmap
CDC memDC; // and a device context
memDC.CreateCompatibleDC(pDC);// then made it compatible
bitmap.CreateBitmap(size,size,1,8,p);//**************problem line
memDC.SelectObject(bitmap);// then let the device context select it.
pDC->StretchBlt(0,0,size,size,&memDC,0,0,size,size,SRCCOPY);// and displayed.
free(p);
}
///////////////////////
// MY CODE ENDS HERE
///////////////////////
}
***********problem line, which is ====> bitmap.CreateBitmap(size,size,1,8,p);
// here's the problem. when i change the 4th value 8 to 1, a monochrome pyramid appears when executed. but i'm trying to make the pyramid smoother just like the greyscale. so 8 should be left 8, i think....
Right now, nothing appears on screen.
someone plz helpme~~
woosoo
-- modified at 12:02 Friday 17th March, 2006
|
|
|
|
|
|
|
Is there a "trick" to get the next biggest power of two for a given value?
I wonder if there's something without a loop (or a binary search).
I know the N & (N-1) == 0 <==> N is a power of two trick, but that doesn't help me much finding something.
Some of us walk the memory lane, others plummet into a rabbit hole
Tree<t> in C# || Fold With Us! || sighist
|
|
|
|
|
|
Wow!
thanks - I just had the entire dev team come to a screeching halt after asking the question...
Some of us walk the memory lane, others plummet into a rabbit hole
Tree<t> in C# || Fold With Us! || sighist
|
|
|
|
|
peterchen wrote: I just had the entire dev team come to a screeching halt after asking the question...
So this question did cost your company several million dollars?!?
"We trained hard, but it seemed that every time we were beginning to form up into teams we would be reorganised. I was to learn later in life that we tend to meet any new situation by reorganising: and a wonderful method it can be for creating the illusion of progress, while producing confusion, inefficiency and demoralisation."
-- Caius Petronius, Roman Consul, 66 A.D.
|
|
|
|
|
We ain't that big, and it was friday afternoon... (sorry, boss)
Some of us walk the memory lane, others plummet into a rabbit hole
Tree<t> in C# || Fold With Us! || sighist
|
|
|
|
|
|
Another solution would be:
int iNextPower2 = 0;<br />
double x;
<br />
iNextPower2 = (int)((log10(x)/log10(2) + 0.5)
This works for raising any base to a power... number of significant digits for an octal number representation of a decimal number would be:
<br />
iPower = (int)((log10(decimalvalue)/log10(8) + 0.5)
Hope that helps.
Karl - WK5M
PP-ASEL-IA (N43CS)
<kmedcalf@ev1.net>
PGP Key: 0xDB02E193
PGP Key Fingerprint: 8F06 5A2E 2735 892B 821C 871A 0411 94EA DB02 E193
|
|
|
|
|
A much slower solution (in terms of CPU cycles), it should be noted.
--
Pictures[^] from my Japan trip.
|
|
|
|
|
yep, that's the "natural" solution, but much to expensive. Thanks anyway
Some of us walk the memory lane, others plummet into a rabbit hole
Tree<t> in C# || Fold With Us! || sighist
|
|
|
|
|
Sorry, I must have missed where you indicated it must have a very low cost in cpu cycles.
I was just giving a generic solution without loops like I believed you were looking for.
Karl - WK5M
PP-ASEL-IA (N43CS)
<kmedcalf@ev1.net>
PGP Key: 0xDB02E193
PGP Key Fingerprint: 8F06 5A2E 2735 892B 821C 871A 0411 94EA DB02 E193
|
|
|
|
|
See this thread.
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"There is no death, only a change of worlds." - Native American Proverb
|
|
|
|
|
[EDIT]
Whoops, never mind.
Reread your question and realized you want to find where FkGrainUp2(S, G) == G.
[/EDIT]
FkGrain*N() - round S up/down to nearest multiple of G
FkGrain*2() - round S up/down to nearest multiple of G, where G must be a power of 2
Will work for all unsigned int types, not just unsigned long long.
ullong FkGrainDnN( ullong S, ullong G )
{
S = S - (S % G);
return(S);
}
ullong FkGrainUpN( ullong S, ullong G )
{
ullong r = S % G;
if( r ) S = S + G - r;
return(S);
}
ullong FkGrainDn2( ullong S, ullong G )
{
S = S & ~(G-1);
return(S);
}
ullong FkGrainUp2( ullong S, ullong G )
{
G -= 1;
S = (S+G) & ~G;
return(S);
}
...cmk
Save the whales - collect the whole set
-- modified at 18:49 Saturday 18th March, 2006
|
|
|
|
|
Hi everybody :- ). Long time no postin'. I worked in other areas lately but now I'm back in C++ at a problem left unsolved some time ago. The problem is quite severe as in I am lacking some very important information (which apparently I can't find in MSDN). You see... I want to create a window which has a control box, minimize and close buttons and a thick frame, but NO RESIZE. So far, I used this:
hwndThis = CreateWindowEx //Creating the window.
(
NULL, //ExStyles.
sClassName, //Class name. Created somewhere above.
Title, //Window name.
WS_OVERLAPPEDWINDOW &~ WS_THICKFRAME &~ WS_MAXIMIZEBOX, //Styles.
X, //X.
Y, //Y.
W, //Width.
H, //Height.
NULL, //Parent.
NULL, //Menu.
hHost, //Parent.
NULL //CreateStruct.
);
As you can probably already guess, this does the job, but creates a window with a very thin border and I don't like that. If I remove WS_THICKFRAME, of course, it works but then I can resize it again. Soooooooooo? Any ideas anybody? :- ). Thank you in advance!
-= E C H Y S T T A S =-
The Greater Mind Balance
|
|
|
|
|
You can handle the WM_SIZING message and simply modify the rect to the app size.
onwards and upwards...
|
|
|
|
|
Not good because I will still see that annoying arrow-resize icon. There has to be another way. A style or something. Something I missed in the MSDN documentation.
-= E C H Y S T T A S =-
The Greater Mind Balance
|
|
|
|
|
Axonn Echysttas wrote: I will still see that annoying arrow-resize icon
WM_NCHITEST, check if the mouse if over a resizing border, if it is return HT_BORDER.
You may be right
I may be crazy
-- Billy Joel --
Within you lies the power for good - Use it!
|
|
|
|
|
Handle the WM_GETMINMAXINFO message. Set the minimum and maximum sizes the same and the window will not be resizable.
You may be right
I may be crazy
-- Billy Joel --
Within you lies the power for good - Use it!
|
|
|
|