|
Hi,
I'm not very experienced in VC++ but I can't think of a function to deal with fractions and as you have no other answers I guess there isn't one and you are just going to have to do the hard work yourself!
You could carry on with your original method and read in 2 strings, then convert them to 4 integers or you could give the user 4 boxes and let them enter 4 integers, 2 for each fraction (perhaps you could display a bar between the upper and lower digit to show that they are fractions). Then you can read in 4 integers, brush up on your maths for adding fractions (its quiet easy really) and you should be sorted.
Hope this helps, regards,
Ali
|
|
|
|
|
Hi,
I have 2 very basic questions about MFC.
1. How can I position a control in a view from the program (not using resource editor), for example in a TreeView, I want to position the treecontrol starting from (0, rect.height()/18) coordinate.
2. If I resize the parent window how can I have the controls resize themselves? (which function in the view to be changed?)
Please help
|
|
|
|
|
1.You can use CWnd::SetWindowPos to set the position of a window.
2. I would use CWnd::OnSize in the parent class. The framework calls this member function after the window’s size has changed. Change the size of the child windows is in this method.
You will find details about the mthods in the MSDN library.
|
|
|
|
|
Thanks for yur reply.
I tried to use following the function as follows, but, I can't see the tree in the view, I'm sure it's under the control on top of it which occupying the 1/18 height from top. Please help
CTreeCtrl& tree = GetTreeCtrl();
tree.SetWindowPos (&cMyTabCtrl, 0, cr.Height()/18, cr.Width(), cr.Height()*17/18, SWP_DRAWFRAME);
|
|
|
|
|
|
HEllo Friends,
One samll query. I goes like this
I have a dialog box in a dll . The dialogbox contains 4 normal button now i have to disable and enable them as per that conditions.
There is a clear, clear all, Ok and help buttons.
NOw if i click the clear all button i make that button disable and now want to set the focus on Ok button. i am able to do the same but teh problem is that when i click the clear all buton then button gets a black outline as it gets focus when i click it, but now i want to disable it and then the OK button should be highlited but this doesnt take place.i mean the border is still there after disableing the clear all button.
i heva tried set focus on button OK the focus is set, but the border doesnt go !!!!!!!!
can any one help
Thanx
TAKE CARE
|
|
|
|
|
Check out CButton::SetState()
|
|
|
|
|
Yes checked it but
That just makes the button in a click state
and the problem still persist
Thanx
TAKE CARE
|
|
|
|
|
Hi all,
I need to get the yesterday's day using any MFC classes like CTime, ColeDateTime. I.e by using ColeDateTime::GetDay i am able to get the day of the week.Is thr any member function or any way to get the yesterdays day
For example if the current day is 1 the previous day should be 31.
If any one have some code patch please let me know
Thanks
- Parthan
|
|
|
|
|
This function might work (pass it the current day, it returns the int for yesterday):
int YourClass::GetYesterday(int nCurrentDay)
{
if(nCurrentDay < 1) || (nCurrentDay > 31))
return 0;
if(nCurrentDay == 1)
{
int month = COleDateTime::GetMonth();
int lastmonth = month - 1;
if(!lastmonth)
lastmonth = 12;
switch(lastmonth)
{
case 4 :
case 6 :
case 10 :
case 11 : return(30);
break;
case 1 :
case 3 :
case 5 :
case 7 :
case 8 :
case 9 :
case 12 : return(31);
break;
case 2 :
if((!COleDateTime::GetYear()%4) && ((COleDateTime::GetYear()%100) || (!COleDateTime::GetYear()% 400)))
return(29);
else
return(28);
}
}
else
return(nCurrentDay--);
}
See http://resurscentrum.nu/members/english/exercises/writing/leap_years.asp[^] for an explanation of the leap year algorithm - I probably wrote it wrong - I didn't check this code
|
|
|
|
|
COleDateTime dt = COleDateTime::GetCurrentTime();
int today = dt.GetDay();
COleDateTimeSpan span(1.0f);
dt -= span;
int yesterday = dt.GetDay();
Sonork 100.11743 Chicken Little
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
Within you lies the power for good - Use it!
|
|
|
|
|
That is cool! I didn't realize that the built-in functionality handles all of the leap-year stuff.
For simple things, I am stuck in the stone-ages I just code them myself and never learn what the members are actually capable of. I keep saying "One of these days...." but it never seems to happen....
|
|
|
|
|
Yeah, it's amazing what a guy can do when he RTFM;P
Sonork 100.11743 Chicken Little
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
Within you lies the power for good - Use it!
|
|
|
|
|
Thanks Mr. Terry O'Nolley & Mr.PJ Arends for the Help
|
|
|
|
|
hi,
try to look at much simpler code :
void CMyDlg::GetYesterday()
{
SYSTEMTIME st;
GetLocalTime(&st);
FILETIME ft;
SystemTimeToFileTime(&st,&ft);
__int64 longTime;
memcpy(&longTime,&ft,sizeof(longTime));
longTime -= (__int64)10000000*60*60*24;
memcpy(&ft,&longTime,sizeof(ft));
FileTimeToSystemTime(&ft,&st);
}
hope this helps you
Yaron
Ask not what your application can do for you,
Ask what you can do for your application
|
|
|
|
|
Hi,
I'm trying to add a tabcontrol to a treeview the followig way: But I don't see any tab in the treeview, just the tree control is there.
Where am I wrong?
Please advise.
void CTreeTestView::OnInitialUpdate()
{
CTreeView::OnInitialUpdate();
CTreeCtrl& tree = GetTreeCtrl();
CRect rct = CRect(1, 10, 100, 0);
cMyTabCtrl.Create(TCS_TABS | TCS_FIXEDWIDTH | WS_CHILD | WS_VISIBLE,
rct, this, 0x1098);
TC_ITEM tcItem;
tcItem.mask = TCIF_TEXT;
PSTR pszTabItems = "hello";
tcItem.pszText = pszTabItems;
tcItem.cchTextMax = strlen(pszTabItems);
cMyTabCtrl.InsertItem(0,&tcItem);
cMyTabCtrl.SetCurSel(0);
tree.DeleteAllItems();
if (!bXMLTreeCreated)
{
m_ImageList.Create(IDB_BITMAP1, 13, 4, RGB( 255, 255, 255 ));
tree.SetImageList( &m_ImageList, TVSIL_NORMAL );
bXMLTreeCreated = true;
}
hierarchy newNode = hierarchy("Root", "", "", "$Root$", "", false, false, "", 0 );
m_pFormView->cSharedData.HNode [iHierarchyNodeCount++] = newNode;
HTREEITEM hItem = tree.InsertItem( "Root", 4,5,TVI_ROOT );
tree.SelectItem (hItem);
tree.SetItemState(hItem, TVIS_BOLD, TVIS_BOLD );
for (int iCount = 0 ; iCount <15 ; iCount++)
OnPopupInserta();
// TODO: You may populate your TreeView with items by directly accessing
// its tree control through a call to GetTreeCtrl().
}
|
|
|
|
|
Hi,
The follwoing code adds the tab control. but, how can i position it so that it is always at the bottom of the tree view and how can set size of tree control in the tree view so that it doesn't overlap with tab control?
static bool bXMLTreeCreated = false; //this bool is used to make sure image list is added only once
iAttributeNodeCount = 0; //Count of Attribute Nodes, even if deleted not decreased
iHierarchyNodeCount = 0; //Count of Hierarchy Nodes, even if deleted not decreased, not changed if Hierarchy appears twice
uniqueHierarchyCount = 0;
m_pFormView->mapsCount = 0;
m_pFormView->domNodeCount = 0;
lastSelectedItem = NULL;
CTreeView::OnInitialUpdate();
CRect rct = CRect(20,390,280,430);
cMyTabCtrl.Create(TCS_TABS | WS_CHILD | WS_VISIBLE, rct, this, 0x1098);
TC_ITEM tcItem [2];
PSTR pszTabItems [2] = {"Hierarchy", "Device Groups"};
for (int iCount =0 ; iCount <2 ; iCount++)
{
tcItem[iCount].mask = TCIF_TEXT;
tcItem[iCount].pszText = pszTabItems[iCount];
tcItem[iCount].cchTextMax = strlen(pszTabItems[iCount]);
cMyTabCtrl.InsertItem(0,&tcItem[iCount]);
}
cMyTabCtrl.SetCurSel(0);
|
|
|
|
|
hi, I trying to optimize the following subroutine. I was advised that statements like: "sum += (j*16 +1);" should be done using shift and bitwise OR... just exactly how?
I do understand bit flag/masking. But what does multiplication/addition has to do with it? Why'd it optimize code? Can someone show me how to multiply two numbers using bitwise SHIFT/AND/OR...etc?
Thanks.
norm
|
|
|
|
|
Well, first off you shouldn't use shifting for math if you care about code readability. The compiler will optimize your expressions for you, optimizing by hand is largely futile unless you're already writing assembly.
Anyhoo, shifting and multiplying/dividing by powers of 2 are equivalent:
x * 2 == x << 1<br />
x * 4 == x << 2<br />
x * 8 == x << 3
and so on. Similarly,
x / 2 == x >> 1<br />
x / 8 == x >> 3
Since a bit shift instruction can be executed in fewer clock cycles then the corresponding integer math instruction, using shift gives you (theoretically) faster code, although with CPUs these days it's not something a human would ever notice.
--Mike--
Ericahist | Homepage | RightClick-Encrypt | 1ClickPicGrabber
Ericahist updated Aug 30!
|
|
|
|
|
Just adding to Michael's answer, the compiler is most likely to do this kind of replacing itself (it is smart enough to know that multiplying by 16 is equivalent to shifting), so your speed gain is most probably 0. To outsmart the compiler in this type of expressions, you should be knowing something that the compiler cannot possibly find out. For instance, suppose you've got an expression like:
sum+=j*i+1; and you know that i is always a power of 2. Then you can actually have some speedup by replacing i with its log2 in the code and doing the shifting.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
hum... i don't quite get it. In my example, i=16 (always)..
so, i do:
sum = sum | j<<4 | 3;
norm
|
|
|
|
|
You may not need to do your hand optimization. Most modern compilers will optimize multiplication and division of certain integer constants (2,3,4,5,any power of 2, and so on), into the appropriate set of shifts.
Software Zen: delete this;
|
|
|
|
|
Hi. How can we launch program from resources using C++.net?
|
|
|
|
|
I want to have my app look at another app running on my computer, and tell me whether the pixel at a certain location is black or white. Can that be done? How do I refer to the other apps coordinates?
|
|
|
|
|
Hi, I need to compute duration of a method call in millisecond, how can I do that? I'm using _ftime to retrieve time. It has millisecond resolution, according to MSDN:
millitm field of __timeb64 is: "Fraction of a second in milliseconds."
--> Now, from when to when in millisecond?
--> Does operating system actually do millisecond? Assuming MS Windows.
--> difftime( ) precision up to second. Anything for millisec?
Thanks!
************************************************
Anyway, Here's the code:
_ftime64( &timebuffer );
timeline = _ctime64( & ( timebuffer.time ) );
printf( "Start: %.19s.%hu %s", timeline, timebuffer.millitm, &timeline[20] );
//Time consuming method call:
obj->SomeMethod(..);
_ftime64( &timebuffer );
timeline = _ctime64( & ( timebuffer.time ) );
printf( "Finish: %.19s.%hu %s", timeline, timebuffer.millitm, &timeline[20] );
norm
|
|
|
|
|