|
Can I open solution in created in VS2005 professional in VS2005 Team Developer is any migration or any know issues going?

|
|
|
|
|
Do you mean Visual Stuio Team System (VSTS)? Visual Studio.NET is the majort part of VSTS. Besides, VSTS also incorporated project management, source control, bug reporting and so on.
Best,
Jun
|
|
|
|
|
Imagine I created my project in VS2005 professional at the moment when Team Edition wasn't released yet. Now I got Team Developer if I open solution/project in Team developer created in VS2005Prof is it going to migrate project or no migration needed?

|
|
|
|
|
No migration to your Visual Studio.NET projects. The Team System uses the very same VC++.NET as its compiler. Of course, you need to set up Team System, such as Microsoft Fundation Server. But this has nothing to do with project migration. Project migration is only required when your compiler is upgraded, such as VC6 to VC7 to VC8.
Best,
Jun
|
|
|
|
|
Thanks. Any tips convering projects fom VC6 -> VC8

|
|
|
|
|
In most cases, just load the VC6 project to VC8. The migration will be performed by VC8 automatically.
Best,
Jun
|
|
|
|
|
Yes thanks. I mean didyou discover any obvious issues I need to take care?
Thanks anyway for usefull info.

|
|
|
|
|
Hi fellows
I'm creating a app that reads data from a database and creates a graphic to show the results. I have a problem with this. I'll have a lot of registers, about 50000. I've think to sum the quantities of the registers and adjust the x-axis and the y-axis according this values. But for this I need to have a big screen resolution. How can I do this to show for the user adjusting in the window program? If anyone knows please tell me. I just want to get an idea, only this, not the entire solution.
I put a piece of code if anyone gets interesting
<br />
RECT tempRect, myRect;<br />
GetClientRect(hwnd, &tempRect);<br />
HBRUSH rectBrush;<br />
char cTemp3[10];<br />
int iSize = sizeof(tempPoint)/sizeof(POINT);<br />
int iXMarquees, iYMarquees, iXSpace, iYSpace = 0;<br />
POINT points[iSize], tmpPoint;<br />
LOGPEN LogPen;<br />
HPEN GraphicPen, LinesPen;<br />
tmpPoint.x = 2;<br />
LogPen.lopnStyle = PS_SOLID;<br />
LogPen.lopnWidth = tmpPoint;<br />
LogPen.lopnColor = 0x00000000;<br />
GraphicPen = CreatePenIndirect(&LogPen);<br />
for(int i = 0 ; i < iSize ; i++)<br />
{<br />
points[i].x = (ixClient * tempPoint[i].x)/400;<br />
points[i].y = (int)(((iyClient * tempPoint[i].y)/450)-iLine)+iYConst;<br />
}<br />
hdc = BeginPaint(hwnd, &ps);<br />
SelectObject(hdc, GraphicPen);<br />
SetBkMode(hdc, TRANSPARENT);<br />
TextOut(hdc, ixClient/2, iLine, TEXT("Olá"), sizeof("Olá"));<br />
Polyline(hdc, points, (sizeof(points)/sizeof(POINT)));<br />
iXGraphLine = tempRect.right-80;<br />
iYGraphLine = (tempRect.bottom-150)-iLine;<br />
tmpPoint.x = 2;<br />
LogPen.lopnStyle = PS_SOLID;<br />
LogPen.lopnWidth = tmpPoint;<br />
LogPen.lopnColor = 0x00FF0000;<br />
LinesPen = CreatePenIndirect(&LogPen);<br />
SelectObject(hdc, LinesPen);<br />
iXSpace = iXGraphLine/(iSize*2);<br />
iYSpace = iYGraphLine/(iSize*2);<br />
for(int i = 0, iXpos = iXSpace, iYpos = iYSpace, iXFont = 10 ; i < iSize*2 ; i++)<br />
{<br />
SelectObject(hdc, LinesPen);<br />
char cTemp10[5];<br />
MoveToEx(hdc, (iXpos-15), iYGraphLine-10-iLine, NULL);<br />
LineTo(hdc, (iXpos-15), iYGraphLine+10-iLine);<br />
itoa(iXpos, cTemp10, 10);<br />
cTemp10[5]='\0';<br />
<br />
SetTextAlign(hdc, TA_CENTER);<br />
TextOut(hdc, iXpos-(((strlen(cTemp10)*iXCaps)+iXChar)/strlen(cTemp10))-2, iYGraphLine+10-iLine, cTemp10, strlen(cTemp10));<br />
iXFont+=iXSpace/2;<br />
iXpos+=iXSpace;<br />
MoveToEx(hdc, 5, (iYpos-15)-iLine, NULL);<br />
LineTo(hdc, 25, (iYpos-15)-iLine);<br />
itoa(iYpos, cTemp10, 10);<br />
TextOut(hdc, 40, (((iYSpace*((iSize*2)-i))-4)-(((strlen(cTemp10)*iXCaps)+iYChar)/strlen(cTemp10))-2)-iLine, cTemp10, strlen(cTemp10));<br />
iYpos+=iYSpace;<br />
SelectObject(hdc, GraphicPen);<br />
SelectObject(hdc, CreateSolidBrush(0x00000000));<br />
if(i < 5)Pie(hdc, points[i].x-4, points[i].y-4, points[i].x+4, points[i].y+4, 10,10,0,0);<br />
}<br />
SelectObject(hdc, LinesPen);<br />
MoveToEx(hdc, 15, -iLine, NULL);<br />
LineTo(hdc, 15, iYGraphLine-iLine);<br />
MoveToEx(hdc, 15, iYGraphLine-iLine, NULL);<br />
LineTo(hdc, iXGraphLine, iYGraphLine-iLine);<br />
rectBrush = CreateSolidBrush(0x00FFFFFF);<br />
myRect.top = (tempRect.bottom-100-iLine*2);<br />
myRect.bottom = (tempRect.bottom-10-iLine*2);<br />
myRect.left = 50;<br />
myRect.right = 200;<br />
FillRect(hdc, &myRect, rectBrush);<br />
SelectObject(hdc, GraphicPen);<br />
MoveToEx(hdc, 60, ((myRect.bottom+myRect.top)/2)-30, NULL);<br />
LineTo(hdc, 130, ((myRect.bottom+myRect.top)/2)-30);<br />
TextOut(hdc, 160, ((myRect.bottom+myRect.top)/2-30-(((strlen("Lalala")*iXCaps)+iYChar)/strlen("Lalala"))+2), "Lalala", strlen("Lalala"));<br />
EndPaint(hwnd, &ps);<br />
DeleteObject(GraphicPen);<br />
DeleteObject(LinesPen);<br />
DeleteObject(rectBrush);<br />
ReleaseDC(hwnd, hdc);<br />
<code>
|
|
|
|
|
Where can we help? The number of registers? Adjusting x- and y-axis? What do you mean "a big screen"?
Please specify where your problem is.
Best,
Jun
|
|
|
|
|
Thanks for your help Jun Du. I need a help exactly for the things that you said. How can I adjust the x and y axis accroding with the number of registers When I said big screen I mean the user will have a big screen resolution to view all the registers, right?
Can you help again?
|
|
|
|
|
Alex Cutovoi wrote: How can I adjust the x and y axis accroding with the number of registers
I hope you know the possibly largest number of registers (grids?) in advance. Of course, you probably only draw the plot for actual number of available registers.
Alex Cutovoi wrote: When I said big screen I mean the user will have a big screen resolution to view all the registers, right?
You should know what Customer (or yourself) wants. There are two drawing options:
1) The size of plot is fixed.
2) The size of plot is proportional to the number of registers.
Either way, whenever the number of registers changed, you have to erase the plot and redraw everthing. There is no way to just "adjust". Since you are using GDI to draw, I assume you know how to draw and redraw. To avoid blinking, you probably want to use double-buffering, meaning drawing to a memory DC and copy to the screen when necessary.
Best,
Jun
|
|
|
|
|
Hi,
For some reason, the path of the .ini file is asked not be specified. The .ini file is located in the same place with .exe file. I tried the functions fopen(strIniFileName,"r") and GetPrivateProfileString( ..,..,..,..,..,strIniFileName), where strIniFileName = ".\\myINI.ini". Both functions worked well in debug process, but failed in execution. I am confused.
I am using VC++ 6, and working on Windows XP.
Could someone please give me an assistance. Many thanks in advance.
hli
|
|
|
|
|
Call GetCurrentDirectory to see where your app runs from and go from there.
Things like this happen when you start your app from a shortcut (with the Start In param missconfigured)
|
|
|
|
|
Good idea. I will try. Thank you very much.
hli
|
|
|
|
|
Actually one wants to use GetModuleFileName() if the ini file is in the same folder as the exe.
You may be right I may be crazy -- Billy Joel --
Within you lies the power for good, use it!!!
|
|
|
|
|
You are right GetCurrentDirectory works from .exe file itself, but fails from shortcut. My application must be used remotely from shortcut. ???
hli
|
|
|
|
|
Run app from shortcut, getCurrentDirectory returns C:\Documents and Settings. I guess that GetModuleFileName is the same. I will try.
hli
|
|
|
|
|
I resolved this problem by adding work directory in "Start In" box in shortcut property. Many thanks.
hli
|
|
|
|
|
Hi all,
I have a tab control in a dialog. There are 5 tabs in total, with each tab associated with a child dialog. I wanna exchange information between these tabs. I store and update all information in a global structure. When I switch between these tabs, I want to update data in these tabs. How can I do that? Currently I am using:
<br />
CMyTabCtrl::OnSelchange(NMHDR* pNMHDR, LRESULT* pResult)<br />
{<br />
int nSel = GetCurSel();<br />
if(m_Dialog[nSel]->m_hWnd)<br />
m_Dialog[nSel]->ShowWindow(SW_HIDE);
............<br />
for(int nCount=0; nCount < m_nPageCount; nCount++){<br />
m_Dialog[nCount]->SetWindowPos(&wndTop, l_rectClient.left,l_rectClient.top,l_rectClient.Width(),l_rectClient.Height(),SWP_HIDEWINDOW);<br />
}<br />
m_Dialog[nSel]->SetWindowPos(&wndTop,l_rectClient.left,l_rectClient.top,l_rectClient.Width(),l_rectClient.Height(),SWP_SHOWWINDOW);<br />
m_Dialog[nSel]->ShowWindow(SW_SHOW);
m_Dialog[nSel]->OnInitDialog();
}<br />
I placed all updating code in each child dialog's OnInitDialog() function. The problem is this function will be called twice so some controls like ListView have double items. How to fix this problem? Do I need to use SendMessage(), PostMessage()?
thanks,
Gavin
|
|
|
|
|
Don't call OnInitDialog to init your data(i guess you used Create to create the dialogs...right?). Write some other methods for handling the OnDisplay Event.
|
|
|
|
|
thanks eusto,
Yes. I know I shouldn't use OnInitDialog(). I am just wondering which message or function of CDialog Class should I use.
I couldn't find the OnDisplay event in Class Wizard. which one of the following should I use?
<br />
WM_PAINT<br />
WM_DRAWITEM<br />
WM_COPYDATA<br />
WM_CAPTURECHANGE<br />
thanks,
Gavin
|
|
|
|
|
OnDisplay was just a name i came up with. Implement a method called LoadData for example and do everything that needs to be done there.
For example for the first CEmbeddedDialog do something like this.
Call CEmbededDialog.Create(...)
then Call CEmbededDialog.LoadData();
In your LoadData method you should put the code that loads your comboboxes and so forth.
You don't need to handle the actual selection of the dialog afterwards...all tabs from the CMyTabCtrl have been initialised when displaying the actual CMyTabCtrl. What your selection should do is hide all other CDialogs except for the one placed in the current selected tab.
Think of your dialogs as actual C++ Objects (wich they are...).
Sorry if this is a bit unclear... i'm not an english speaker
|
|
|
|
|
Can you explain why you use OnInitDialog for update,please.Do you have specific statements in this function
whitesky
|
|
|
|
|
Thanks WhiteSky,
No special reason. I just want to use an overrided function of CDialog class because I don't know which child dialog class is run at run time.
|
|
|
|
|
if you need to update you can write your function and use from it
whitesky
|
|
|
|
|