|
http://www.codeproject.com/system/#Registry[^]
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" mYkel - 21 Jun '04
Within you lies the power for good - Use it!
|
|
|
|
|
|
hi i am trying to draw a number in a rectangle however the rectagle is fairly small and i want the text to fit how do i shrink the font size so its not larger than the rectangle?
dc.Draw3dRect(rc, yellow, yellow);
dc.SetTextColor(black);
dc.DrawText(str, rc, DT_SINGLELINE|DT_LEFT);
|
|
|
|
|
You need to create Font instance in your class's header file and then create the font using its CreateFont(...) function. Then in your wm_paint event handler, you type something along the lines of:
dc.SelectObject(&m_font);
Good luck on your projects.
Happy Programming and may God Bless!
"Your coding practices might be buggy, but your code is always right."
Internet::WWW::CodeProject::bneacetp
N-Tech Productions
http://www.n-tp.com/
|
|
|
|
|
You have to create a new font and select into the device context before calling Drawtext . CreatePointFont is the easiest (although limited) way to create the font.
dc.Draw3dRect(rc, yellow, yellow);
dc.SetTextColor(black);
int points = rc.Height() * 10;
CFont newFont;
newFont.CreatePointFont(points, "Arial", &dc);
CFont *defFont = dc.SelectObject(&newFont);
dc.DrawText(str, rc, DT_SINGLELINE | DT_LEFT);
dc.SelectObject(defFont);
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" mYkel - 21 Jun '04
Within you lies the power for good - Use it!
|
|
|
|
|
I am attempting to add processes into view class in document / view setup by creating multiple inheritance into the view class. ( I need to process each view from common menu.) I followed the sample in MSDN "TN016: Using C++ Multiple Inheritance with MFC" but it will not compile.
I am getting "... : error C2660: 'new' : function does not take 3 parameters" at IMPLEMENT_DYNCREATE(CCCImageView, CScrollView).
The difference between MSDN sample and mine code is the macro IMPLEMENT_DYNACREATE used in the "primary" base class.
MSDN uses IMPLEMENT_DYNAMIC.
My next step is to see how these macros differ.I have not done that yet.
Any suggestion how to debug this?
How can I step thru the macro?
Appreciate any help.
Vaclav
|
|
|
|
|
Sounds like the difference between new and DEBUG_NEW . The debug version of new takes three parameters. I am sure it has to do with the standard code:
#ifdef _DEBUG
#define new DEBUG_NEW
etc that is placed at the top of every cpp file.
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" mYkel - 21 Jun '04
Within you lies the power for good - Use it!
|
|
|
|
|
Thanks, you are correct.
I guess the real question is why did it showed up when I added multiple inheritance to the class. Time to check the macro itself.
Vaclav
|
|
|
|
|
|
Yes, it does say that, but only if the additional class has same base class.
I am just adding my own abstract class to add new precedures to the view class. I am actually trying to find an easy way to determine an active view so I can modify it. So far I found several ways to do that, but all of them require the actuall view class (cast) to work properly. The "normal" MFC code always returns CView class pointer which is pretty useless in my case.
It seem this note writer missed some important "details".
Thanks for you help.
Vaclav
|
|
|
|
|
Hi,
I have a CListCtrl derived class. My question is how do I append a structure, with properties like textcolor, font..., to the items/subitems of this control? Should I use a CMap? If I should then tell me please how I should initialize the structure and the CMap a how do I map the struct to the items?
TIA!!!
best regards
Thomas
|
|
|
|
|
search for some articles here in CP... there are many good ones ; i'm sure you can fine what you need.
cheers,
TOXCCT >>> GEII power
|
|
|
|
|
|
After calling InsertItem() , you'll then need to call SetItemData() .
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
Hello,
I am implementing a function which accepts a number of variable parameters and it has the following form:
char *FormatString(char *pszFrm, ...)
This function performs some (limited) processing which, when concluded, should branch execution to a different function. And this is where the problem lies.
How do I pass this variable number of parameters, as it is (meaning unchanged), to a different function?
Any insights will be greatly appreciated.
Thank you
|
|
|
|
|
You can pass the va_list you generate to any function that takes it.
char *FormatString(char *pszFrm, ...)
{
va_list arguments;
va_start(arguments, pszFrm);
va_end(arguments);
return pointer_you_got_somehow;
} Going by your function name, you are probably wanting to pass the parameters onto sprintf() . You can pass the va_list onto _vsnprintf which does the same thing as sprintf .
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclang98/html/_pluslang_functions_with_variable_argument_lists.asp[^]
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" mYkel - 21 Jun '04
Within you lies the power for good - Use it!
|
|
|
|
|
I've been poking aroung MFC source files and managed to find a reference in ::AfxTrace to the _vsnprintf function...
But thanks a lot anyway!
Cheers,
David Nimrod
|
|
|
|
|
I have a CStringArray filled with a bunch of filenames. The filenames are like this... 1.jpg, 2.jpg, 3.jpg, and so on.
I have over a thousand of these. From time to time and for some reason I need to go through and rename all of them. I use CFileFind with FindFile() and FindNextFile()to fill the string array with the filenames. But, they're sorted alphabetically, 1.jpg, 10.jpg, 100.jpg, 2.jpg, 20.jpg, etc.
I need these to be sorted sequentially.
I cant seem to figure out how to do it. All I need is to sort the filenames in the string array sequentially.
Any help?
Thanks,
Daniel
|
|
|
|
|
string sorting is different than numerical sorting.
if your filenames are only <number>.jpg then, convert the number from string to number and sort according to the numbers.
<hr><a href="http://www.thesorus.qc.ca">Maximilien Lincourt</a>
<b>Your Head A Splode</b> - <i>Strong Bad</i>
|
|
|
|
|
I tried that first. Sorting an array of ints isnt any easier.
Know of an easy way to sequentially sort an array of ints?
|
|
|
|
|
|
I figured this out...
<br />
for (int yy = 0; yy < Size; yy++)<br />
{<br />
for (int y = 1; y < Size; y++)<br />
{<br />
if (c[y] < c[y-1])<br />
{<br />
a = c[y-1];<br />
b = c[y];<br />
c[y] = a;<br />
c[y-1] = b;<br />
a = b = 0;<br />
}<br />
}<br />
}<br />
Size = size of int array.
Its ugly, but it works.
|
|
|
|
|
Daniel1324 wrote:
for (int yy = 0; yy < Size; yy++)
{
for (int y = 1; y < Size; y++)
{
if (c[y] < c[y-1])
{
a = c[y-1];
b = c[y];
c[y] = a;
c[y-1] = b;
a = b = 0;
}
}
}
Size = size of int array.
Yikes! Have a look at the qsort() C library function. You should be able to do this:
static int intCompareFunc(const void *parm1, const void *parm2)
{
int num1 = *static_cast<const int*>(parm1);
int num2 = *static_cast<const int*>(parm2);
return num1 - num2;
}
...
qsort(c, sizeof(int), Size, intCompareFunc); That should sort the c array in ascending order.
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
|
Hi,
iam a beginner to visual c++ and i think i have a simple question:
i want to search a character in a char variable.
like
<br />
switch (&mychar)<br />
{<br />
case CHR(13):<br />
MessageBox("found");<br />
default:<br />
MessageBox("Not Found!");<br />
}<br />
In VB i could compare like
if mychar = Chr(13) then ...
Can anybody call me the functionname of Chr or Ord or ASC in MFC c++ 6.0?
Thx alot!!
Bye
|
|
|
|